JObject 用于操作JSON对象 JArray 用语操作JSON数组 JValue 表示数组中的值 JProperty 表示对象中的属性,以"key/value"形式 JToken 用于存放Linq to JSON查询后的结果
JToken的层次结构是这样的:
JToken -抽象基类 JContainer - 能够包含其它JToken的JToken抽象基类 JArray - 表示一个JSON数组(包含一个有序的List<JToken>) JObeject - 表示一个JSON对象(包含一个IEnumerable<JProperty>) JProperty - 表示一个JSON属性(在JObject中是一个name/JToken键值对) JValue - 表示一个原生JSON值(string,number,boolean,null)
以下是几条基本的经验法则:
如果是一个对象(在JSON里是有大括号“{”和“}”来标识的),就用JObject。
如果是一个数组或集合(用中括号“[”和“]”标识的),就用JArray。
如果是原生值,就用JValue。
如果你不知道你的json是什么类型的token,或者你希望用一种通用的方式来处理上面任意一种类型的对象,
就用JToken,
然后你可以检查它的Type属性来决定是哪种类型的token,并把它转化成相应的类型
JObject 是 JContainer 的子类,而 JContainer 又是 JToken 的子类。
JObject < JContainer < JToken
这就好像说“人”是动物的子类,而动物是生物的子类。
显然,使用 Jtoken 的地方,不仅仅要能让 JObject 对象实例使用,还要兼容 JArray 等等其它类型的对象。
此时用 JObject 就太“小气”了,不够准确。
把JObject理解为C#中的一个类,那么JProperty就是它的属性
JArray JObject JProperty 之间关系
那么什么是Linq To JSON呢
一.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查询后的结果 |