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
Вы можете использовать метод keys()
или names()
. keys()
предоставит вам итератор, содержащий все имена свойств String в объекте, в то время как names()
предоставит вам массив всех ключевых имен строк.
Вы можете получить документацию JSONObject здесь
http://developer.android.com/reference/org/json/JSONObject.html
Ответ 4
Франци Пенов Ответ правильный. Многие люди поступили неправильно, не зная разницы между JsonObject и JSONObject.
Ответ 5
Вам нужно будет использовать Iterator
для циклического перебора ключей, чтобы получить их значения.
Здесь, в реализации Kotlin, вы поймете, что способ, которым я получил строку, использует optString()
, который ожидает значение String или обнуляемое значение.
val keys = jsonObject.keys()
while (keys.hasNext()) {
val key = keys.next()
val value = targetJson.optString(key)
}
Ответ 6
Взгляните на ссылку JSONObject:
http://www.json.org/javadoc/org/json/JSONObject.html
Без фактического использования объекта он выглядит как с помощью getNames() или keys(), который возвращает Iterator - путь.