我有一个JSONObject,其数据结构如下

[{"distance":"200 meters","location_id":"519"},{"distance":"300 meters","location_id":"219"}]


我试图遍历该对象中的每个数组,我有以下代码,其中locationArray是有效的JSONObject

for (int j = 0; j < locationArray.length(); j++) {

     JSONObject j_obj;
     j_obj = locationArray.getJSONArray(j); //error here
     location_id = j_obj.getString("location_id");
}


但是我在尝试找到带有整数的locationArray的每个子数组时遇到错误。

最佳答案

解决方案:

JSONArray rootArray = new JSONArray(jsonString);
int len = rootArray.length();
for(int i = 0; i < len; ++i) {
    JSONObject obj = rootArray.getJSONObject(i);
    location_id = obj.getString("location_id");
}


您的代码中有错误。 j_obj = locationArray.getJSONArray(j);应该为j_obj = locationArray.getJSONObject(j);,因为用大括号括起来的对象表示JSONObject,而不是JSONArray

编辑:您可以考虑使用obj.optString("location_id");以避免潜在的问题

关于android - 如何遍历JSONObject中的android JSON数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4471322/

10-10 10:31