{
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
Jak mogę uzyskać klucz i wartość każdego elementu bez wcześniejszej znajomości klucza ani wartości?
{
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
Jak mogę uzyskać klucz i wartość każdego elementu bez wcześniejszej znajomości klucza ani wartości?
Odpowiedzi:
Krótka wersja odpowiedzi Franci:
for(Iterator<String> iter = json.keys();iter.hasNext();) {
String key = iter.next();
...
}
Musisz użyć Iterator do zapętlenia kluczy, aby uzyskać ich wartości.
Oto implementacja Kotlina, zdasz sobie sprawę, że sposób, w jaki otrzymałem ciąg, wykorzystuje optString(), który oczekuje wartości String lub wartości null.
val keys = jsonObject.keys()
while (keys.hasNext()) {
val key = keys.next()
val value = targetJson.optString(key)
}
Należy użyć metody keys()lub names(). keys()da ci iterator zawierający wszystkie nazwy właściwości String w obiekcie, podczas gdy names()da ci tablicę wszystkich kluczowych nazw String.
Możesz pobrać dokumentację JSONObject tutaj
http://developer.android.com/reference/org/json/JSONObject.html
Spójrz na odniesienie do JSONObject:
http://www.json.org/javadoc/org/json/JSONObject.html
Wygląda na to, że bez faktycznego używania obiektu użycie metody getNames () lub keys (), która zwraca Iterator, jest właściwą drogą.
JSONObjectsystemie Android nie ma getNames(). developer.android.com/reference/org/json/JSONObject.html