繁体   English   中英

无法使用GSON库解析JSON文件

[英]Unable to parse JSON file using GSON library

我无法解析此JSON文件。 任何建议表示赞赏。 我已经从http://www.jsonschema2pojo.org/创建了POJO类,我尝试了提到的JSON反序列化解决方案,但对我来说却行不通。

    {
  "error": "",
  "data": [
    {
      "view": "Viewpapger",
      "data": [
        {
          "view": "ImageView",
          "data": {
            "url": "random.jpg"
          },
          "properties": {
            "width": "fill_parent",
            "height": "500"
          }
        },
        {
          "view": "Textview",
          "data": {
            "text": "afvnjkafvf"
          },
          "properties": {
            "width": "fill_parent"
          }
        },
        {
          "view": "Textview",
          "data": {
            "text": "afvnjkafvf"
          },
          "properties": {
            "width": "fill_parent"
          }
        },
        {
          "view": "ImageView",
          "data": {
            "url": "random.jpg"
          },
          "properties": {
            "width": "fill_parent",
            "height": "500"
          }
        }
      ],
      "properties": {
        "width": "wrap_content",
        "height": "500"
      }
    },
    {
      "view": "Textview",
      "data": {
        "text": "afvnjkafvf"
      },
      "properties": {
        "width": "fill_parent"
      }
    },
    {
      "view": "ImageView",
      "data": {
        "url": "random.jpg"
      },
      "properties": {
        "width": "fill_parent",
        "height": "500"
      }
    }
  ]
}

我认为这里的问题是JSON结构不与任何严格指定的架构相对应,而是更像是键和值的临时集合。 例如,(似乎)取决于视图描述对象中view字段的值, data字段可以是

  • 包含其他视图描述的JSON数组(用于“ Viewpager”)
  • 包含名为“ url”(用于“ ImageView”)的字符串的JSON对象
  • 包含名为“ text”(用于“ TextView”)的字符串的JSON对象

因此,基本上看来data可以是任何东西 ,而且您可以拥有任意深度的节点树,其中data可以是树中任何级别的任何东西。 ((例如,如果您始终可以确定顶层元素是“ Viewpager”,其中包含一层子视图,例如“ ImageView”或“ TextView”,则可能会有所不同-如果您有类似的保证,让我知道)。

在那种情况下,我认为您最好以其他不太严格的方式解析JSON(也许使用org.json.JSONArrayorg.json.JSONObject ),然后“手动”处理所有不同的情况。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM