【发布时间】:2016-11-07 18:42:55
【问题描述】:
作为我的问题的后续行动: JSON.NET: Obtain JObject from JProperty Value ...
我阅读了链接并消化了上述 cmets 和建议。现在我想知道:为什么没有“直接”(即简单)方法将 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 对象的令人信服的理由是什么?
【问题讨论】:
-
JToken表示 JSON 文件中的任何可能的标记。如果你有一些 JSON 并且事先不知道里面可能是什么,你可以用JToken.Parse()解析它,只要 JSON 是有效的就可以得到结果。如果根 JSON 令牌不是预期的类型,JObject.Parse()、JArray.Parse()和JValue.Parse()将抛出。 -
为了完善您原本出色的总结,JSON 令牌到底是什么(我对 JSON 还是个新手)?
-
来自JSON standard(这真的很简单),它将是一个对象、数组、值、字符串或数字。
-
请以某种方式移动您的评论以回答,以便我给予您信任。谢谢!
标签: json.net