gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 21:14:32 24 4
gpt4 key购买 nike

作为我的问题的后续行动:
JSON.NET: Obtain JObject from JProperty Value ...

我阅读了链接并消化了上述评论和建议。现在我想知道:为什么没有“直接”(即简单)的方法将 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 对象的令人信服的理由是什么?

最佳答案

来自 standard , JSON 由以下五种类型的 token 构建而成:

  • 对象:一组无序的名称/值对。
  • 数组:有序的值集合。
  • 值:双引号中的字符串,或数字,或 truefalsenull ,或对象或数组。这些结构可以嵌套。
  • 字符串
  • 数字。

  • JToken 是一个抽象基类,表示这些可能的标记中的任何一个。如果你有一些 JSON 并且事先不知道里面可能有什么,你可以用 JToken.Parse() 解析它。只要 JSON 格式正确,就可以获得结果。 JObject.Parse() JArray.Parse() 如果根 JSON token 不是预期的类型,则将抛出。而且没有 JValue.Parse() 解析您知道表示“原子”值的 JSON 字符串,需要使用 JToken.Parse()在这种情况下。

    同样, JToken.FromObject() 可用于将任何类型的 c# 对象序列化为 JToken无需事先知道生成的 JSON 类型。这可能很有用,例如在编写通用序列化相关代码时。

    关于JSON.NET:为什么要使用 JToken?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38211719/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com