作为我这里问题的跟进: JSON.NET:从JProperty值获取JObject ...我阅读了链接,并消化了以上评论和建议。现在我想知道:是否有充分的理由说明为什么没有“直接”(即简单)的方法将JProperty对象的值转换为JObject?到达JToken,然后必须构造if语句,这似乎是很多工作。相反,它是承认我仍然认为我不理解JToken的真正目的。一次,所有FedEx程序包都首先路由到孟菲斯:似乎所有对象都可以/应该首先转到JToken,然后再打包为实际的目标对象类型。这是一种思考的方式吗?换句话说,是否有充分的理由使用JToken?或者仅仅是其他许多函数返回了JToken,然后您就必须处理它?JSON.NET手册提供了将JToken转换为其他类型的方法(http://www.newtonsoft.com/json/help/html/Operators_T_Newtonsoft_Json_Linq_JToken.htm),但是没有提到从JToken到JObject的转换。我发现JObject通常是我想要的,以便使用JSON并将其从JSON映射到我的.NET类,然后再返回-以及进行许多其他操作。我仍然想知道曾经使用JToken对象的令人信服的原因是什么?
2 回答
倚天杖
TA贡献1828条经验 获得超3个赞
根据标准,JSON是基于以下五种类型的令牌构建的:
object:一组无序的名称/值对。
array:值的有序集合。
value:用双引号引起来的字符串,或者是数字,或,或true或false或null,或者对象或数组。这些结构可以嵌套。
串
号。
JToken是一个抽象基类,代表这些可能标记中的任何一个。如果您有一些JSON,并且事先不知道其中可能包含什么,则JToken.Parse()只要JSON有效,就可以对其进行解析并获得结果。如果根JSON令牌不是预期的类型JObject.Parse(),JArray.Parse()则会抛出该异常。而且,没有JValue.Parse()解析您知道的表示“原子”值的JSON字符串,JToken.Parse()在这种情况下需要使用。
桃花长相依
TA贡献1860条经验 获得超8个赞
JToken表示JSON文件中任何可能的令牌。如果您有一些JSON,并且事先不知道其中可能包含什么,则JToken.Parse()只要JSON有效,就可以对其进行解析并获得结果。 JObject.Parse(),JArray.Parse()并且JValue.Parse()如果根JSON令牌是预期的类型不是会抛出。
- 2 回答
- 0 关注
- 2353 浏览
添加回答
举报
0/150
提交
取消