可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
i'm using a java class on http://json.org/javadoc/org/json/JSONObject.html.
The following is my code snippet.
String jsonResult = UtilMethods.getJSON(this.jsonURL, null); json = new JSONObject(jsonResult);
getJSON returns the following string
{"LabelData":{"slogan":"AWAKEN YOUR SENSES","jobsearch":"JOB SEARCH","contact":"CONTACT","video":"ENCHANTING BEACHSCAPES","createprofile":"CREATE PROFILE"}}
Now...how do I get the value of 'slogan' ?
I tried all the methods listed on the page, but none of them worked.
回答1:
String loudScreaming = json.getJSONObject("LabelData").getString("slogan");
回答2:
If it's a deeper key/value you're after and you're not dealing with arrays of keys/values at each level, you could recursively search the tree:
public static String recurseKeys(JSONObject jObj, String findKey) throws JSONException { String 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()) { 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");
Using Map code from https://stackoverflow.com/a/4149555/2301224