{
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
Bagaimana saya bisa mendapatkan kunci dan nilai setiap item tanpa mengetahui kunci atau nilainya sebelumnya?
{
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
Bagaimana saya bisa mendapatkan kunci dan nilai setiap item tanpa mengetahui kunci atau nilainya sebelumnya?
Jawaban:
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!
}
}
Versi singkat dari jawaban Franci:
for(Iterator<String> iter = json.keys();iter.hasNext();) {
String key = iter.next();
...
}
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.
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
http://developer.android.com/reference/org/json/JSONObject.html
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.
JSONObject
Android tidak memiliki getNames()
. developer.android.com/reference/org/json/JSONObject.html