как пройти через JSONArray для Android с помощью JSONObject - PullRequest
1 голос
/ 17 декабря 2010

У меня есть 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 с целым числом.

1 Ответ

4 голосов
/ 17 декабря 2010

решение:

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");, чтобы избежать потенциальной проблемы

...