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

vq8itlhq  于 2021-07-03  发布在  Java
关注(0)|答案(3)|浏览(705)

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”可以动态更改。

hfwmuf9z

hfwmuf9z1#

您可以使用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
}
bwitn5fc

bwitn5fc2#

您可以使用迭代器

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

vlju58qv3#

改型后很容易得到json响应。
参考 Retrofit 2 .0教程,非常有效

相关问题