本人是C#小白,这里摘抄并整理了两位大神的文章:
Newtonsoft.Json笔记 -JToken、JObject、JArray详解
Json 基于类 Newtonsoft.Json.Linq.JToken的应用简介
简单介绍如何使用Newtonsoft.Json类库和操作Json对象,这里主要介绍Linq to Json类。
Newtonsoft.Json
封装类实现了JToken,
直接对JSON进行增删改查的操作,很好的解决了动态解析json数据的问题,
JToken
的层次结构是这样的:
JToken
-抽象基类
JContainer
- 能够包含其它JToken
的JToken
抽象基类
JArray
- 表示一个JSON数组(包含一个有序的List)
JObeject
- 表示一个JSON对象(包含一个IEnumerable
)
JProperty
- 表示一个JSON属性(在JObject
中是一个name/JToken
键值对)
JValue
- 表示一个原生JSON值(string,number,boolean,null
)
一,Linq to Json
使用Linq to Json前,需要引用Newtonsoft.Json的dll和using Newtonsoft.Json.Linq的命名空间。
Linq to Json主要使用到JObject, JArray, JProperty和JValue这四个对象,以及一个特殊的JToken对象。
- JObject:基本的Json对象,用来生成一个JSON对象,简单来说就是生成”{}”,
- JArray用来生成一个JSON数组,也就是”[]”,
- JProperty用来生成一个JSON数据,格式为key/value的值,
- 而JValue则直接生成一个JSON的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());
还可以通过以下方法创建Json对象:
方法 | 说明 |
---|---|
JObject.Parse(string json) |
json含有JSON对象的字符串,返回为JObject对象</ |