如何解析JSON响应(包含动态对象数据)

时间:2016-05-10 14:10:04

标签: java android arrays json

来自API的Json响应是动态的,解析JSON数据的可能方法是什么,

GSON到JSON,序列化名称不可能bcz数据是动态的。 任何人都可以建议解析JSON响应的可能方法。

{
  "2": {
    "id": 2,
    "layout": "ListView"
  },
  "3": {
    "menu": 0,
    "id": 3,
    "layout": "DetailView"
  },
  "start": {
    "layout": "Search",
    "onClick": {
      "next": 2
    },
    "onBtnClick": {
      "next": 3
    }
  }
}

其中" 2"或" 3"可以动态改变。

3 个答案:

答案 0 :(得分:0)

您可以使用org.json库“手动”解析JSON,这将使您可以直接控制解析的内容和方式。

代码如下所示:

JSONObject json = new JSONObject(yourJsonString);
//This object will have String names inside, so "2", "3", "start" etc.
JSONArray names = json.names();
for(int i = 0; i < names.length(); i++) {
    JSONObject data = json.getJSONObject(names.getString(i));
    // Inside this data variable you will have the object.
    // You can check which name it has and react accordingly
}

答案 1 :(得分:0)

您可以使用迭代器

Iterator<String> iter = json.keys();
while (iter.hasNext()) {
   String key = iter.next();
   ...
}

答案 2 :(得分:0)

通过改造,很容易有json响应。

Refer retrofit 2.0 for tutorial, it is very effective