Json.net codeplex :http://www.codeplex.com/Json

原本感觉Newtonsoft.Json和.net自己的JavaScriptSerializer相差无几,所以将工程里的Json都换成了JavaScriptSerializer来实现,可是近几日遇到一个需求.在反序列化时我并没有预先定义好的类,而是要以字典形式读取.

于是我自己实现了一个类,由于没有模型对象,所以所有的Json读取和检测过程都要重新写过.

后来却发现Newtonsoft中已经提供了我需要的功能,甚至还提供了Json的Linq查询.

JObject

下面用个实例来搞定它的读写

1.Json是这样的

  1. {title:123,body:456,list:{title:'这是一个标题',body:'what'}}
  1. 2.我要将其中几项都搞出来,代码:
  1. static void Main(string[] args)
  2. {
  3. string str = "{title:123,body:456,list:{title:'这是一个标题',body:'what'}}";
  4. JObject o = JObject.Parse(str);
  5. Console.WriteLine(o["title"]);
  6. Console.WriteLine(o["body"]);
  7. Console.WriteLine(o["list"]["title"]);
  8. Console.WriteLine(o["list"]["body"]);
  9. Console.ReadKey();
  10. }
  1. 3.这样就输出了:
  1. 123
  2. 456
  3. "这是一个标题"
  4. "what"
  1.  
  1. 不足:字符串还是案字符串输出带"",但我想这也不是问题.Trim就好了

Linq to Json

基本Linq的都差不多,可以参考Json.net文档.这个并未深入研究

  1. string str = "{title:123,body:456,list:{title:'这是一个标题',body:'what'}}";
  2. JObject o = JObject.Parse(str);
  3.  
  4. var s =
  5. from p in o.Children()
  6. select p;
  7.  
  8. foreach (var item in s)
  9. {
  10. Console.WriteLine(item);
  11. }
  12.  
  13. Console.ReadKey();

json学习:http://www.w3school.com.cn/json/json_intro.asp

  1. <html>
  2. <body>
  3. <h2>在 JavaScript 中创建 JSON 对象</h2>
  4.  
  5. <p>
  6. Name: <span id="jname"></span><br />
  7. Age: <span id="jage"></span><br />
  8. Address: <span id="jstreet"></span><br />
  9. Phone: <span id="jphone"></span><br />
  10. </p>
  11.  
  12. <script type="text/javascript">
  13. var JSONObject= {
  14. "name":"Bill Gates",
  15. "street":"Fifth Avenue New York 666",
  16. "age":56,
  17. "phone":"555 1234567"};
  18. document.getElementById("jname").innerHTML=JSONObject.name
  19. document.getElementById("jage").innerHTML=JSONObject.age
  20. document.getElementById("jstreet").innerHTML=JSONObject.street
  21. document.getElementById("jphone").innerHTML=JSONObject.phone
  22. </script>
  23.  
  24. </body>
  25. </html>

json中jobject的更多相关文章

  1. JSON中JObject和JArray,JValue序列化(Linq)

    http://blog.csdn.net/lovegonghui/article/details/50293629 一.JObject和JArray序列化 1.实例化JArray和JObject,然后 ...

  2. JSON中JObject和JArray的修改

    一.JObject 和JArray的添加.修改.移除 1.先添加一个json字符串,把json字符串加载到JObject中,然后转换成JObject.根据索引修改对象的属性值,移除属性,添加属性 us ...

  3. Json to JObject转换的使用方法

    Linq to JSON是用来操作JSON对象的.可以用于快速查询,修改和创建JSON对象.当JSON对象内容比较复杂,而我们仅仅需要其中的一小部分数据时,可以考虑使用Linq to JSON来读取和 ...

  4. 读取Json,并替换json中的指定字符

    string jsonfile = @"E:\history.json";//JSON文件路径 using (System.IO.FileStream file = new Fil ...

  5. Can not add Newtonsoft.Json.Linq.JValue to Newtonsoft.Json.Linq.JObject.

    https://blog.csdn.net/zhouyingge1104/article/details/83307637 C#项目中使用NewtonSoft.json,报错提示: Can not a ...

  6. asp.net core 3.0 JObject The collection type 'Newtonsoft.Json.Linq.JObject' is not supported

    在asp.net core 3.0 中,如果直接在Controller中返回 Jobject 类型,会抛出如下错误: The collection type 'Newtonsoft.Json.Linq ...

  7. "bower.json 中出现语法错误" 的解决方案之一

    当你用 Visual Studio 2015 Update 3 打开从别处下载的开源项目的时候,如果发现 Bower 提示 "bower.json 中出现语法错误". 请检查一下. ...

  8. JSON相关知识,转载:删除JSON中数组删除操作

    一:JSON是什么 JSONg格式:对象是一个无序的“名称/值”对的集合. 对象以括号开始,括号结束. 名称冒号分隔值. "名称/值"之间用逗号分隔 例: var people = ...

  9. Newtonsoft.Json 通过 JObject 读取 json对像 超简单

    /* json 格式的字符串解析 格式化 { "input": { "size": 193156, "type": "image/ ...

随机推荐

  1. Swift使用闭包表达式

    Swift中的闭包表达式很灵活,其标准语法格式如下:{ (参数列表) ->返回值类型 in    语句组}其中,参数列表与函数中的参数列表形式一样,返回值类型类似于函数中的返回值类型,但不同的是 ...

  2. java坑之无法创建线程

    环境:linux 错误:java.lang.OutOfMemoryError: unable to create new native thread 原因:OS对线程是有限制 解决办法: 在Linux ...

  3. 基于AspectJ自定义注解

    package com.aspectj.demo.aspect; import java.lang.annotation.ElementType; import java.lang.annotatio ...

  4. GIS初学者

    学习编程一直以来没有什么好的思路,感觉就是学了忘,忘了再重复,效率特别低下.大概是从大三第一学期才有意识的转向c#的学习,来熟悉VS2010平台,在这之前我都不知道自己是怎么学习的. 大一第二学期开的 ...

  5. vim 跳转命令

    基本跳转: hjkl:左下上右 HML:当前屏幕顶.中.底部 web:下一单词词首.下一单词词尾.前一单词词首 gg:文件首  G:文件末尾  ngg/nG:第n行 ta:移动到所在行之后第一个字符a ...

  6. 一个CFile::Remove引起的奇怪问题

    今天收到测试的一个反馈,我们的一个程序,在WIN7.WIN8下安装后,运行不起来,在进程列表中可以看到,但就是不出来窗口,同样的程序在XP下正常,在UAC关闭的情况下也正常,在以管理员权限运行时也正常 ...

  7. 深度优先算法DFS

    英雄要从H点出发,去解救位于M点的美女. 迷宫的围墙用#表示,带*号的位置表示有杀手埋伏,这些点都是不能走的, 那么英雄要最少走多少步才能解救美女呢? package myalgorithm; imp ...

  8. 快速解码base64和utf-8的ASCII编码和URL解码

    看论坛上总是有人发乱七八糟的文字,根本看不懂,用下面的方法解密一下. 只要有浏览器的开发者工具就行了. UTF-16解码 console.log("\u5475\u5475") U ...

  9. 非常出色的一款WinForm窗体重绘GUI类库源码

    基本控件的演示 ScrollBar滚动条 各种圆形进度条 ProgressBar进度条 Mdi演示,仿谷歌浏览器 多种皮肤可供选择 一套专业级别的GUI控件,目前包含了窗体.进度条.滚动条以及MDI多 ...

  10. select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET (转)

    select函数用于在非阻塞中,当一个套接字或一组套接字有信号时通知你,系统提供select函数来实现多路复用输入/输出模型,原型: #include <sys/time.h>       ...