一、JToken和JObject有什么区别
原文出处:
JToken和JObject有什么区别 - 八英里 - 博客园
JObject 用于操作JSON对象
JArray 用语操作JSON数组
JValue 表示数组中的值
JProperty 表示对象中的属性,以"key/value"形式
JToken 用于存放Linq to JSON查询后的结果
二、
(译)JToken的层次结构
原文地址:https://stackoverflow.com/questions/38558844/jcontainer-jobject-jtoken-and-linq-confusion/38560188#38560188?newreg=577582085c60496db7bdb78be26a2313
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,并把它转化成相应的类型。
三、 C# JTOKEN类的使用,实现解析动态JSON数据、遍历、查找
https://www.freesion.com/article/2598272928/
J
Token
-抽象基类
JContainer - 能够包含其它J
Token
的J
Token
抽象基类
JArray - 表示一个JSON数组(包含一个有序的List)
JObeject - 表示一个JSON对象(包含一个IEnumerable)
JProperty - 表示一个JSON属...
/// &amp;lt;summary&amp;gt;
/// Gets the j
object
.
/// &amp;lt;/summary&amp;gt;
/// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;
public J
Object