{
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
Як я можу отримати ключ та значення кожного елемента, не знаючи заздалегідь ключ чи значення?
{
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
Як я можу отримати ключ та значення кожного елемента, не знаючи заздалегідь ключ чи значення?
Відповіді:
Використовуйте 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!
}
}
Коротка версія відповіді Франці:
for(Iterator<String> iter = json.keys();iter.hasNext();) {
String key = iter.next();
...
}
Вам потрібно буде використовувати Iterator отримати їх значення, циклічним перемиканням клавіш.
Ось реалізація Kotlin, ви зрозумієте, що так, як я отримав рядок, використовується optString(), що очікує значення String або нульове значення.
val keys = jsonObject.keys()
while (keys.hasNext()) {
val key = keys.next()
val value = targetJson.optString(key)
}
Ви повинні використовувати метод keys()або names()метод. keys()дасть вам ітератор, що містить усі назви властивостей String в об'єктіnames() надасть масив усіх ключових імен String.
Ви можете отримати документацію JSONObject тут
http://developer.android.com/reference/org/json/JSONObject.html
Погляньте на посилання JSONObject:
http://www.json.org/javadoc/org/json/JSONObject.html
Без фактичного використання об'єкта, це схоже на використання або getNames (), або клавіш (), який повертає Ітератор - це шлях.
JSONObjectAndroid немає getNames(). developer.android.com/reference/org/json/JSONObject.html