JSONObject – 如何获得一个值?

我在http://json.org/javadoc/org/json/JSONObject.html上使用了一个java类。

以下是我的代码片段。

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

getJSON返回下面的string

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

现在…我怎样才能得到“口号”的价值?

我尝试了页面上列出的所有方法,但都没有工作。

 String loudScreaming = json.getJSONObject("LabelData").getString("slogan"); 

如果它是一个更深层次的键/值,并且不处理每个级别的键/值数组 ,则可以recursionsearch树:

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

用法:

 JSONObject jObj = new JSONObject(jsonString); String extract = recurseKeys(jObj, "extract"); 

使用从https://stackoverflow.com/a/4149555/2301224的地图代码;