全国设计网站公司,网站平台建设十大公司,网络管理系统的每个节点都包含一组与管理有关的软件,30多了学网站建设晚吗一.Linq to JSON是用来干什么的?Linq to JSON是用来操作JSON对象的.可以用于快速查询,修改和创建JSON对象.当JSON对象内容比较复杂,而我们仅仅需要其中的一小部分数据时,可以考虑使用Linq to JSON来读取和修改部分的数据而非反序列化全部. 二.创建JSON数组和对象在进行Linq to… 一.Linq to JSON是用来干什么的? Linq to JSON是用来操作JSON对象的.可以用于快速查询,修改和创建JSON对象.当JSON对象内容比较复杂,而我们仅仅需要其中的一小部分数据时,可以考虑使用Linq to JSON来读取和修改部分的数据而非反序列化全部. 二.创建JSON数组和对象 在进行Linq to JSON之前,首先要了解一下用于操作Linq to JSON的类. 类名说明 JObject 用于操作JSON对象 JArray 用语操作JSON数组 JValue 表示数组中的值 JProperty 表示对象中的属性,以key/value形式 JToken 用于存放Linq to JSON查询后的结果 1.创建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()); 结果: 除此之外还可以通过一下方式来获取JObject.JArray类似。 方法 说明 JObject.Parse(string json)json含有JSON对象的字符串返回为JObject对象 JObject.FromObject(object o)o为要转化的对象返回一个JObject对象 JObject.Load(JsonReader reader)reader包含着JSON对象的内容返回一个JObject对象 2.创建JSON数组 JArray arr new JArray();arr.Add(new JValue(1));arr.Add(new JValue(2));arr.Add(new JValue(3));Console.WriteLine(arr.ToString()); 结果: 三.使用Linq to JSON 1.查询首先准备Json字符串是一个包含员工基本信息的Json string json {\Name\ : \Jack\, \Age\ : 34, \Colleagues\ : [{\Name\ : \Tom\ , \Age\:44},{\Name\ : \Abel\,\Age\:29}] }; ①获取该员工的姓名 //将json转换为JObjectJObject jObj JObject.Parse(json);//通过属性名或者索引来访问仅仅是自己的属性名而不是所有的JToken ageToken jObj[Age];Console.WriteLine(ageToken.ToString()); 结果: ②获取该员工同事的所有姓名 //将json转换为JObjectJObject jObj JObject.Parse(json);var namesfrom staff in jObj[Colleagues].Children()select (string)staff[Name];foreach (var name in names)Console.WriteLine(name); Children()可以返回所有数组中的对象 结果 2.修改 ①现在我们发现获取的json字符串中Jack的年龄应该为35 //将json转换为JObjectJObject jObj JObject.Parse(json);jObj[Age] 35;Console.WriteLine(jObj.ToString()); 结果 注意不要通过以下方式来修改 JObject jObj JObject.Parse(json);JToken age jObj[Age];age 35; ②现在我们发现Jack的同事Tom的年龄错了应该为45 //将json转换为JObjectJObject jObj JObject.Parse(json);JToken colleagues jObj[Colleagues];colleagues[0][Age] 45;jObj[Colleagues] colleagues;//修改后再赋给对象Console.WriteLine(jObj.ToString()); 结果 3.删除①现在我们想删除Jack的同事 JObject jObj JObject.Parse(json);jObj.Remove(Colleagues);//跟的是属性名称Console.WriteLine(jObj.ToString()); 结果 ②现在我们发现Abel不是Jack的同事要求从中删除 JObject jObj JObject.Parse(json);jObj[Colleagues][1].Remove();Console.WriteLine(jObj.ToString()); 结果 4.添加①我们发现Jack的信息中少了部门信息要求我们必须添加在Age的后面 //将json转换为JObjectJObject jObj JObject.Parse(json);jObj[Age].Parent.AddAfterSelf(new JProperty(Department, Personnel Department));Console.WriteLine(jObj.ToString()); 结果 ②现在我们又发现Jack公司来了一个新同事Linda //将json转换为JObjectJObject jObj JObject.Parse(json);JObject linda new JObject(new JProperty(Name, Linda), new JProperty(Age, 23));jObj[Colleagues].Last.AddAfterSelf(linda);Console.WriteLine(jObj.ToString()); 结果 四.简化查询语句 使用函数SelectToken可以简化查询语句具体①利用SelectToken来查询名称 JObject jObj JObject.Parse(json);JToken name jObj.SelectToken(Name);Console.WriteLine(name.ToString()); 结果 ②利用SelectToken来查询所有同事的名字 JObject jObj JObject.Parse(json);var names jObj.SelectToken(Colleagues).Select(p p[Name]).ToList();foreach (var name in names)Console.WriteLine(name.ToString()); 结果 ③查询最后一名同事的年龄 //将json转换为JObjectJObject jObj JObject.Parse(json);var age jObj.SelectToken(Colleagues[1].Age);Console.WriteLine(age.ToString()); 结果 转载于:https://www.cnblogs.com/songtzu/archive/2012/07/27/2612007.html