JSONObject – Comment obtenir une valeur?

J’utilise une classe Java sur http://json.org/javadoc/org/json/JSONObject.html .

Voici mon extrait de code.

Ssortingng jsonResult = UtilMethods.getJSON(this.jsonURL, null); json = new JSONObject(jsonResult); 

getJSON renvoie la chaîne suivante

 {"LabelData":{"slogan":"AWAKEN YOUR SENSES","jobsearch":"JOB SEARCH","contact":"CONTACT","video":"ENCHANTING BEACHSCAPES","createprofile":"CREATE PROFILE"}} 

Maintenant, comment puis-je obtenir la valeur du slogan?

J’ai essayé toutes les méthodes listées sur la page, mais aucune ne fonctionnait.

 Ssortingng loudScreaming = json.getJSONObject("LabelData").getSsortingng("slogan"); 

Si vous cherchez une clé / valeur plus profonde et que vous ne traitez pas de tableaux de clés / valeurs à chaque niveau, vous pouvez effectuer une recherche récursive dans l’arborescence:

 public static Ssortingng recurseKeys(JSONObject jObj, Ssortingng findKey) throws JSONException { Ssortingng finalValue = ""; if (jObj == null) { return ""; } Iterator keyItr = jObj.keys(); Map map = new HashMap<>(); while(keyItr.hasNext()) { String key = keyItr.next(); map.put(key, jObj.getString(key)); } for (Map.Entry e : (map).entrySet()) { Ssortingng key = e.getKey(); if (key.equalsIgnoreCase(findKey)) { return jObj.getSsortingng(key); } // read value Object value = jObj.get(key); if (value instanceof JSONObject) { finalValue = recurseKeys((JSONObject)value, findKey); } } // key is not found return finalValue; } 

Usage:

 JSONObject jObj = new JSONObject(jsonSsortingng); Ssortingng extract = recurseKeys(jObj, "extract"); 

Utilisation du code de la carte depuis https://stackoverflow.com/a/4149555/2301224