{
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
Comment puis-je obtenir la clé et la valeur de chaque élément sans connaître la clé ni la valeur au préalable?
{
"key1": "value1",
"key2": "value2",
"key3": "value3"
}
Comment puis-je obtenir la clé et la valeur de chaque élément sans connaître la clé ni la valeur au préalable?
Réponses:
Utilisez l' keys()
itérateur pour parcourir toutes les propriétés et appelez get()
chacune d'elles.
Iterator<String> iter = json.keys();
while (iter.hasNext()) {
String key = iter.next();
try {
Object value = json.get(key);
} catch (JSONException e) {
// Something went wrong!
}
}
Version courte de la réponse de Franci:
for(Iterator<String> iter = json.keys();iter.hasNext();) {
String key = iter.next();
...
}
Vous devrez utiliser une Iterator
boucle pour parcourir les clés pour obtenir leurs valeurs.
Voici une implémentation de Kotlin, vous vous rendrez compte que la façon dont j'ai obtenu la chaîne utilise optString()
, qui attend une chaîne ou une valeur Nullable.
val keys = jsonObject.keys()
while (keys.hasNext()) {
val key = keys.next()
val value = targetJson.optString(key)
}
Vous devez utiliser la méthode keys()
ou names()
. keys()
vous donnera un itérateur contenant tous les noms de propriété String dans l'objet tandis que names()
vous donnera un tableau de tous les noms String clés.
Vous pouvez obtenir la documentation JSONObject ici
http://developer.android.com/reference/org/json/JSONObject.html
Jetez un œil à la référence JSONObject:
http://www.json.org/javadoc/org/json/JSONObject.html
Sans réellement utiliser l'objet, il semble que l'utilisation de getNames () ou keys () renvoie un Iterator est la voie à suivre.
JSONObject
dans Android n'a pas getNames()
. developer.android.com/reference/org/json/JSONObject.html