Android JSONObject - Bagaimana cara melakukan loop melalui objek JSON datar untuk mendapatkan setiap kunci dan nilai


Jawaban:


313

Gunakan keys()iterator untuk mengulangi semua properti, dan panggil get()masing-masing.

Iterator<String> iter = json.keys();
while (iter.hasNext()) {
    String key = iter.next();
    try {
        Object value = json.get(key);
    } catch (JSONException e) {
        // Something went wrong!
    }
}

7
Catatan: Anda tidak dapat menggunakan bentuk kependekan untuk (String s: json.keys ()) {...} Sangat disayangkan bahwa baik JSONArray maupun JSONObject tidak dapat diulang. :-(
tu-Reinstate Monica-dor duh

apa json disini? Json Object, Json Array atau anthing yang lain?
Pravinsingh Waghela

2
@PravinsinghWaghela itu adalah JSONObject seperti yang ditentukan dalam pertanyaan
Nicolás Carrasco

66

Versi singkat dari jawaban Franci:

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

apa json disini? Json Object, Json Array atau anthing yang lain?
Pravinsingh Waghela

json adalah JsonObject
Roozbeh Zabihollahi

@PravinsinghWaghela cukup yakin OP bertanya bagaimana melakukan loop melalui objek json.
Denny

5

Anda harus menggunakan Iteratorto loop melalui kunci untuk mendapatkan nilainya.

Ini adalah implementasi Kotlin, Anda akan menyadari bahwa cara saya mendapatkan string menggunakan optString(), yang mengharapkan String atau nilai nullable.

val keys = jsonObject.keys()
while (keys.hasNext()) {
    val key = keys.next()
    val value = targetJson.optString(key)        
}


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.