Verwenden Sie den keys()Iterator, um alle Eigenschaften zu durchlaufen, und rufen Sie get()jede auf.
Iterator<String> iter = json.keys();while(iter.hasNext()){String key = iter.next();try{Object value = json.get(key);}catch(JSONException e){// Something went wrong!}}
Hinweis: Sie können die Kurzform nicht für (String s: json.keys ()) {...} verwenden. Es ist wirklich schade, dass weder JSONArray noch JSONObject iterierbar sind. :-(
tu-Reinstate Monica-dor duh
Was ist Json hier? Json-Objekt, Json-Array oder sonst etwas?
Pravinsingh Waghela
2
@PravinsinghWaghela es ist ein JSONObject wie in der Frage angegeben
Nicolás Carrasco
66
Kurzfassung von Francis Antwort:
for(Iterator<String> iter = json.keys();iter.hasNext();){String key = iter.next();...}
Was ist Json hier? Json-Objekt, Json-Array oder sonst etwas?
Pravinsingh Waghela
Json ist JsonObject
Roozbeh Zabihollahi
@PravinsinghWaghela ziemlich sicher, dass das OP gefragt hat, wie ein JSON-Objekt durchlaufen werden soll.
Denny
5
Sie müssen ein verwenden Iterator, um die Schlüssel zu durchlaufen, um ihre Werte zu erhalten.
Hier ist eine Kotlin-Implementierung. Sie werden feststellen, dass die Art und Weise, wie ich den String erhalten habe optString(), einen String oder einen nullbaren Wert erwartet.
val keys = jsonObject.keys()while(keys.hasNext()){
val key = keys.next()
val value = targetJson.optString(key)}
Sie sollten die Methode keys()oder names()verwenden. keys()Sie erhalten einen Iterator, der alle String-Eigenschaftsnamen im Objekt enthält, während names()Sie ein Array aller wichtigen String-Namen erhalten.
Antworten:
Verwenden Sie den
keys()
Iterator, um alle Eigenschaften zu durchlaufen, und rufen Sieget()
jede auf.quelle
Kurzfassung von Francis Antwort:
quelle
Sie müssen ein verwenden
Iterator
, um die Schlüssel zu durchlaufen, um ihre Werte zu erhalten.Hier ist eine Kotlin-Implementierung. Sie werden feststellen, dass die Art und Weise, wie ich den String erhalten habe
optString()
, einen String oder einen nullbaren Wert erwartet.quelle
Sie sollten die Methode
keys()
odernames()
verwenden.keys()
Sie erhalten einen Iterator, der alle String-Eigenschaftsnamen im Objekt enthält, währendnames()
Sie ein Array aller wichtigen String-Namen erhalten.Die JSONObject-Dokumentation finden Sie hier
http://developer.android.com/reference/org/json/JSONObject.html
quelle
Schauen Sie sich die JSONObject-Referenz an:
http://www.json.org/javadoc/org/json/JSONObject.html
Ohne das Objekt tatsächlich zu verwenden, sieht es so aus, als ob Sie entweder getNames () oder keys () verwenden, die einen Iterator zurückgeben.
quelle
JSONObject
in Android hat nichtgetNames()
. developer.android.com/reference/org/json/JSONObject.html