JToken

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查询后的结果
posted @ 2021-04-18 17:51  ProZkb  阅读(1758)  评论(0编辑  收藏  举报