簡體   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