为了账号安全,请及时绑定邮箱和手机立即绑定

JSON.NET:为什么要使用JToken?

/ 猿问

JSON.NET:为什么要使用JToken?

123456qqq 2019-10-21 15:48:04

作为我这里问题的跟进: 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 回答

?
倚天杖

根据标准,JSON是基于以下五种类型的令牌构建的:


object:一组无序的名称/值对。

array:值的有序集合。

value:用双引号引起来的字符串,或者是数字,或,或true或false或null,或者对象或数组。这些结构可以嵌套。

号。

JToken是一个抽象基类,代表这些可能标记中的任何一个。如果您有一些JSON,并且事先不知道其中可能包含什么,则JToken.Parse()只要JSON有效,就可以对其进行解析并获得结果。如果根JSON令牌不是预期的类型JObject.Parse(),JArray.Parse()则会抛出该异常。而且,没有JValue.Parse()解析您知道的表示“原子”值的JSON字符串,JToken.Parse()在这种情况下需要使用。


查看完整回答
反对 回复 2019-10-21
?
桃花长相依

JToken表示JSON文件中任何可能的令牌。如果您有一些JSON,并且事先不知道其中可能包含什么,则JToken.Parse()只要JSON有效,就可以对其进行解析并获得结果。 JObject.Parse(),JArray.Parse()并且JValue.Parse()如果根JSON令牌是预期的类型不是会抛出。

查看完整回答
反对 回复 2019-10-21

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信