解析JSON响应并将其添加到List中

时间:2016-08-31 12:41:04

标签: android json

我在解析JSON方面遇到了问题。我收到了像这样的webservice的回复:

HTTP_TRANSPORT = new com.google.api.client.http.javanet.NetHttpTransport()

我尝试将其解析为PART对象并将其添加到List但是某处我犯了错误,因为对象没有被解析。

{
   "data": {
      "1": [
         {
            "id": "2",
            "name": "Szelki bezpieczeństwa",
            "quantity": "1",
            "note": null,
            "picture_id": null,
            "code": "CCCCCCCCCCCCCC"
         },
         {
            "id": "3",
            "name": "Kalosze do brodzenia, wysokie lub biodrowe",
            "quantity": "2",
            "note": "Do wymiany",
            "picture_id": null,
            "code": "DDDDDDDDDDDDDD"
         }
      ],
      "2": [
         {
            "id": "1",
            "name": "Spodnie dla pilarza z ochroną przed przecięciem, klasa min. 1 (wg PN-EN 381-5)",
            "quantity": "2",
            "note": "Uszkodzone",
            "picture_id": null,
            "code": "DAAD086F690E1C36"
         }
      ]
   }
}

先谢谢你的帮助! :)

2 个答案:

答案 0 :(得分:0)

JSON解析

您必须使用迭代器进行此类响应

迭代器的基本示例在此link

答案 1 :(得分:0)

您正在尝试将地图解析为数组:

String arrayString = responseJSONObject.getJSONArray("data").toString();

尝试这样的事情:

List<JSONArray> objects = new ArrayList<>();
Iterator<String> keys = responseJSONObject.getJSONObject("data").keys();
while(keys.hasNext()) {
    objects.add(responseJSONObject.getJSONObject("data").get(keys.next());
}

// rest of your stuff

或者,考虑使用GSON来解析使用POJO的JSON响应。