当前位置:  开发笔记 > 编程语言 > 正文

解析动态命名的JSON对象的最有效方法是什么?

如何解决《解析动态命名的JSON对象的最有效方法是什么?》经验,为你挑选了0个好方法。

我正在尝试解析一个JSON响应,其中包含一些我不太熟悉的东西,也没有经常在野外看到过.

在其中一个JSON对象中,有一个动态命名的JSON对象.

在此示例中,"bugs"命名中有一个JSON对象,"12345"它与一个错误号相关联.

{
   "bugs" : {
      "12345" : {
         "comments" : [
            {
               "id" : 1,
               "text" : "Description 1"
            },
            {
               "id" : 2,
               "text" : "Description 2"
            }
         ]
      }
   }
}

我很好奇的是:解析动态命名的JSON对象最有效的方法什么?

给出了一些JSON Utility工具

http://jsonutils.com/

http://json2csharp.com/

他们会像上面那样采用JSON响应,并将其变为类似下面的类:

jsonutils

public class Comment
{
    public int id { get; set; }
    public string text { get; set; }
}

public class 12345
{
    public IList comments { get; set; }
}

public class Bugs
{
    public 12345 12345 { get; set; }
}

public class Root
{
    public Bugs bugs { get; set; }
}

json2charp

public class Comment
{
    public int id { get; set; }
    public string text { get; set; }
}

public class __invalid_type__12345
{
    public List comments { get; set; }
}

public class Bugs
{
    public __invalid_type__12345 __invalid_name__12345 { get; set; }
}

public class RootObject
{
    public Bugs bugs { get; set; }
}

这个问题是它生成class一个动态名称.因此,具有该API的其他标识符的后续查询将导致失败,因为该名称不匹配也不会生成[JsonProperty("")],因为它将包含根据上面生成的示例的动态类名.

虽然JSON是有效的,但这似乎是JSON的限制,这种格式是这样设置的.不幸的是我对这个JSON API没有任何控制权,所以我很好奇解决这个问题的最佳方法是什么?

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有