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");