Как я могу получить ключ и значение каждого элемента, не зная ни ключа, ни значения заранее?
Переведено автоматически
Ответ 1
Используйте keys() итератор для перебора всех свойств и вызова get() для каждого.
Iterator<String> iter = json.keys(); while (iter.hasNext()) { Stringkey= iter.next(); try { Objectvalue= json.get(key); } catch (JSONException e) { // Something went wrong! } }
Ответ 2
Краткая версия ответа Франси:
for(Iterator<String> iter = json.keys();iter.hasNext();) { Stringkey= iter.next(); ... }
Ответ 3
Вам нужно будет использовать Iterator для перебора ключей, чтобы получить их значения.
Вот реализация Kotlin, вы поймете, что способ, которым я получил строку, использует optString(), который ожидает строку или значение с нулевым значением.
valkeys= jsonObject.keys() while (keys.hasNext()) { valkey= keys.next() valvalue= targetJson.optString(key) }
Ответ 4
Вы должны использовать метод keys() or names(). keys() предоставит вам итератор, содержащий все строковые имена свойств в объекте, в то время как names() предоставит вам массив всех строковых имен ключей.
Вы можете получить документацию по JSONObject здесь