Json.net/Newtonsoft 3.0 新特性JObject/Linq to Json

王朝学院·作者佚名  2016-05-22
窄屏简体版  字體: 小  |  中  |  大  |  超大  

Json.net/Newtonsoft 3.0 新特性JObject/Linq to Json原文:http://www.cnblogs.com/chsWord/archive/2008/09/19/Newtonsoft_new_3_0.html

http://www.cnblogs.com/usharei/archive/2012/04/24/2467578.html

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

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

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

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

1.Json是这样的

{title:123,body:456,list:{title:'这是一个标题',body:'what'}}

2.我要将其中几项都搞出来,代码:

static void Main(string[] args){ string str = "{title:123,body:456,list:{title:'这是一个标题',body:'what'}}"; JObject o = JObject.Parse(str); Console.WriteLine(o["title"]); Console.WriteLine(o["body"]); Console.WriteLine(o["list"]["title"]); Console.WriteLine(o["list"]["body"]); Console.ReadKey();}

3.这样就输出了:

123456"这是一个标题""what"

 

不足:字符串还是按字符串输出带"",但我想这也不是问题.Trim就好了

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

string str = "{title:123,body:456,list:{title:'这是一个标题',body:'what'}}";JObject o = JObject.Parse(str);var s = from p in o.Children() select p;foreach (var item in s){ Console.WriteLine(item);}Console.ReadKey();

创建JSON数组和对象 类名

说明

JObject

用于操作JSON对象

JArray

用语操作JSON数组

JValue

表示数组中的值

JPRoperty

表示对象中的属性,以"key/value"形式

JToken

用于存放Linq to JSON查询后的结果

 

 

 

 

 

创建JSON对象

JObject staff = new JObject();staff.Add(new JProperty("Name", "Jack"));staff.Add(new JProperty("Age", 33));staff.Add(new JProperty("Department", "Personnel Department"));staff.Add(new JProperty("Leader", new JObject(new JProperty("Name", "Tom"), new JProperty("Age", 44), new JProperty("Department", "Personnel Department"))));Console.WriteLine(staff.ToString());

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航