Android

Android JSONObject - How can I loop through a flat JSON object to get each key and value

Android JSONObject - как я могу выполнить цикл по плоскому объекту JSON, чтобы получить каждый ключ и значение
{
"key1": "value1",
"key2": "value2",
"key3": "value3"
}

Как я могу получить ключ и значение каждого элемента, не зная ни ключа, ни значения заранее?

Переведено автоматически
Ответ 1

Используйте keys() итератор для перебора всех свойств и вызова get() для каждого.

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

Краткая версия ответа Франси:

for(Iterator<String> iter = json.keys();iter.hasNext();) {
String key = iter.next();
...
}
Ответ 3

Вам нужно будет использовать Iterator для перебора ключей, чтобы получить их значения.

Вот реализация Kotlin, вы поймете, что способ, которым я получил строку, использует optString(), который ожидает строку или значение с нулевым значением.

val keys = jsonObject.keys()
while (keys.hasNext()) {
val key = keys.next()
val value = targetJson.optString(key)
}
Ответ 4

Вы должны использовать метод keys() or names(). keys() предоставит вам итератор, содержащий все строковые имена свойств в объекте, в то время как names() предоставит вам массив всех строковых имен ключей.

Вы можете получить документацию по JSONObject здесь

http://developer.android.com/reference/org/json/JSONObject.html

2023-06-07 16:34 java android json