首页 > 编程知识 正文

NewtonsoftJson JObject与JArray总结

时间:2023-05-04 01:51:19 阅读:237909 作者:4083

Newtonsoft.Json是一款.net下的Json序列化/反序列化库,省去了手动拼Json的麻烦,可以通过官网或者NuGet下载。

JObject是其中比较万金油的一个类,可以在不使用实体类的情况下构建/解析Json。

1.字符串转JObject

引入命名空间:

using Newtonsoft.Json.Linq;

Json数据:

{ "name": "steam", "games": [ { "name": "The Witcher 3", "price": "63" }, { "name": "GTA5", "price": "93" } ], "master": "G pan"} string jsonStr = "{"name": "steam","games":[{"name":"The Witcher 3","price":"63"},{"name":"GTA5","price":"93"}],"master":"G pan"}"; JObject json = JObject.Parse(jsonStr); foreach(var item in json) { Console.WriteLine(item.Key + "," + item.Value); } Console.WriteLine("-------------------------------"); foreach(var item in json["games"]) { Console.WriteLine(item["name"]); } Console.WriteLine("-------------------------------"); Console.WriteLine(json["name"]); Console.WriteLine(json["games"][0]["name"]); Console.Read();

运行结果:

                                       

从上面的例子可以看出,用JObject.Parse()可以将Json格式的字符串转化为JObject对象,然后分列出了三种情况,遍历该对象,遍历嵌套的Json数据和单独访问其中一个值与嵌套数据中的值,看一眼就明白怎么用了。

2.构建Json对象 JObject json = new JObject { { "name", "steam" }, { "age", "18" } };Console.WriteLine(json);Console.WriteLine("--------------------------");JObject json2 = new JObject { { "name", "basketball" } };json.Add("爱好", json2);Console.Write(json);Console.Read();

上面的例子构建了一个json对象,先输出一遍,再对其嵌套一个json对象,输出如下:

                                                             

上面的代码很简单,可是有个缺陷,如果“爱好”一栏有多个数据,这种写法就不行了,这个时候就该祭出JArray对象。

从名字就可以看出该对象是一个数组,我们将上面的例子改写为:

JObject json = new JObject { { "name", "steam" }, { "age", "18" } };Console.WriteLine(json);Console.WriteLine("--------------------------");JArray jarray = new JArray { new JObject { { "name", "basketball" } }, new JObject { { "name", "football" } }, ;json.Add("爱好", jarray);Console.Write(json);Console.Read();

运行结果:

                                                 

 

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。