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!}}
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)}
Anda harus menggunakan metode keys()atau names(). keys()akan memberi Anda iterator yang berisi semua nama properti String di objek sementara names()akan memberi Anda array dari semua nama String kunci.
Anda bisa mendapatkan dokumentasi JSONObject di sini
Jawaban:
Gunakan
keys()
iterator untuk mengulangi semua properti, dan panggilget()
masing-masing.sumber
Versi singkat dari jawaban Franci:
sumber
Anda harus menggunakan
Iterator
to 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.sumber
Anda harus menggunakan metode
keys()
ataunames()
.keys()
akan memberi Anda iterator yang berisi semua nama properti String di objek sementaranames()
akan memberi Anda array dari semua nama String kunci.Anda bisa mendapatkan dokumentasi JSONObject di sini
http://developer.android.com/reference/org/json/JSONObject.html
sumber
Lihat referensi JSONObject:
http://www.json.org/javadoc/org/json/JSONObject.html
Tanpa benar-benar menggunakan objek, sepertinya menggunakan getNames () atau keys () yang mengembalikan Iterator adalah cara yang harus dilakukan.
sumber
JSONObject
Android tidak memilikigetNames()
. developer.android.com/reference/org/json/JSONObject.html