2010-12-17 5 views
1

ich eine JSONObject mit der Datenstruktur alswie kann ich ein Android JSONArray witin einem JSONObject durchqueren haben

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

folgt und ich versuche, jedes Array innerhalb dieses Objekts zu durchlaufen, ich habe den folgenden Code, wo locationArray JSONObject ist der gültige

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"); 
} 

, aber ich bin immer einen Fehler versucht, mit einer ganzen Zahl jedes Subarray von locationArray zu finden.

Antwort

4

die Lösung:

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"); 
} 

Es ist ein Fehler im Code. j_obj = locationArray.getJSONArray(j); sollte j_obj = locationArray.getJSONObject(j); sein, da das Objekt mit geschweiften Klammern gewickelt, um eine JSONObject darstellt und keine JSONArray

Edit: Sie betrachten obj.optString("location_id"); verwendet, kann ein mögliches Problem

zu vermeiden
Verwandte Themen