j'utilise une classe Java sur http://json.org/javadoc/org/json/JSONObject.html .
Ce qui suit est mon extrait de code.
String jsonResult = UtilMethods.getJSON(this.jsonURL, null);
json = new JSONObject(jsonResult);
getJSON retourne 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 de "slogan"?
J'ai essayé toutes les méthodes énumérées sur la page, mais aucune d'entre elles n'a fonctionné.
String loudScreaming = json.getJSONObject("LabelData").getString("slogan");
Si vous recherchez une clé/valeur plus profonde et que vous êtes ne traitez pas de tableaux de clés/valeurs à chaque niveau, vous pouvez effectuer une recherche récursive dans l'arbre:
public static String recurseKeys(JSONObject jObj, String findKey) throws JSONException {
String finalValue = "";
if (jObj == null) {
return "";
}
Iterator<String> keyItr = jObj.keys();
Map<String, String> map = new HashMap<>();
while(keyItr.hasNext()) {
String key = keyItr.next();
map.put(key, jObj.getString(key));
}
for (Map.Entry<String, String> e : (map).entrySet()) {
String key = e.getKey();
if (key.equalsIgnoreCase(findKey)) {
return jObj.getString(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(jsonString);
String extract = recurseKeys(jObj, "extract");
Utilisation du code de carte de https://stackoverflow.com/a/4149555/2301224
Vous pouvez essayer la fonction ci-dessous pour obtenir la valeur de la chaîne JSON,
public static String GetJSONValue(String JSONString, String Field)
{
return JSONString.substring(JSONString.indexOf(Field), JSONString.indexOf("\n", JSONString.indexOf(Field))).replace(Field+"\": \"", "").replace("\"", "").replace(",","");
}