Android JSONObject - Comment puis-je parcourir un objet JSON plat pour obtenir chaque clé et valeur


Réponses:


313

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!
    }
}

7
Remarque: vous ne pouvez pas utiliser la forme courte pour (String s: json.keys ()) {...} C'est vraiment dommage que ni JSONArray ni JSONObject ne soient itérables. :-(
tu-Reinstate Monica-dor duh

qu'est-ce que json ici? Json Object, Json Array ou autre chose?
Pravinsingh Waghela

2
@PravinsinghWaghela c'est un JSONObject comme spécifié dans la question
Nicolás Carrasco

66

Version courte de la réponse de Franci:

for(Iterator<String> iter = json.keys();iter.hasNext();) {
    String key = iter.next();
    ...
}

qu'est-ce que json ici? Json Object, Json Array ou autre chose?
Pravinsingh Waghela

json est JsonObject
Roozbeh Zabihollahi

@PravinsinghWaghela à peu près sûr que l'OP a demandé comment faire une boucle à travers un objet json.
Denny

5

Vous devrez utiliser une Iteratorboucle 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)        
}


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.