Android JSONObject - Her bir anahtarı ve değeri almak için düz bir JSON nesnesinde nasıl döngü yapabilirim?


Yanıtlar:


313

keys()Tüm özellikleri yinelemek ve get()her birini aramak için yineleyiciyi kullanın .

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
Not: (String s: json.keys ()) için kısa biçimi kullanamazsınız {...} Ne JSONArray ne de JSONObject öğesinin yinelenebilir olmaması çok yazık. :-(
tu-Reinstate Monica-dor duh

burada json nedir? Json Object, Json Array veya başka bir şey?
Pravinsingh Waghela

2
@PravinsinghWaghela, soruda belirtildiği gibi bir JSONObject
Nicolás Carrasco

67

Franci'nin cevabının kısa versiyonu:

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

burada json nedir? Json Object, Json Array veya başka bir şey?
Pravinsingh Waghela

json is JsonObject
Roozbeh Zabihollahi

@PravinsinghWaghela, OP'nin bir json nesnesi üzerinden nasıl döngü yapılacağını sorduğundan oldukça emin.
Denny

5

IteratorDeğerlerini almak için anahtarlar arasında geçiş yapmak için bir kullanmanız gerekecek .

İşte bir Kotlin uygulaması, benim dizeyi kullanma optString()şeklimin bir Dize veya boş değer atanabilir bir değer beklediğini fark edeceksiniz .

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


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.