【问题标题】:Newtonsoft JSON Deserialize DynamicallyNewtonsoft JSON 动态反序列化
【发布时间】:2019-12-20 07:27:51
【问题描述】:

JSON 数据示例:

{"t":"1339886","a":true,"data":[],"Type":[['Ants','Biz','Tro']]}

我找到了用于 C# 的 Newtonsoft JSON.NET 反序列化库。 如果我使用:

object JsonDe = JsonConvert.DeserializeObject(Json); 

如何在不创建类的情况下访问 JsonDe 对象以获取所有“类型”数据?

提供的 JSON 只是一个示例,我必须管理来自网站的大型 JSON 响应,创建一个类将是一项艰巨的工作。

【问题讨论】:

  • 为 JSON 创建一个类很辛苦 - 您可以将 JSOn 粘贴到 Visual Studio 中,它会为您创建类。
  • 你可以把它转换成字典
  • 您可以使用JToken.Parse()JsonConvert.DeserializeObject<JToken>(Json) 来解析没有固定模式的JSON。请参阅:JObject.Parse vs JsonConvert.DeserializeObject
  • 顺便说一下,您不需要为整个数据创建一个类。您可以只使用所需数据创建类。其余的将被忽略。
  • @ŇɏssaPøngjǣrdenlarp 我该怎么做?

标签: c# json json.net deserialization


【解决方案1】:

您是否考虑过使用 JsonLinq 和 JObject.Parse()?然后,您可以使用以下内容:

string Data = "{\"t\":\"1339886\",\"a\":true,\"data\":[],\"Type\":[['Ants','Biz','Tro']]}";
JObject J = JObject.Parse(Data);
string[] Types = J["Type"][0].ToObject<string[]>();

注意:我没有针对您的数据结构进行测试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多