Android获取JSON密钥值
问题描述:
我对解析特定的json
字符串有疑问。在我的情况下,我找不到任何有助于我的东西。我有这样的JSON:Android获取JSON密钥值
{
"AM": {
"country_name": "Armenia",
"data": {
"180854": {
"time_published": "2012-03-30 13:31:39",
"title": "Example",
},
"180926": {
"time_published": "2012-04-02 05:21:44",
"title": "Example",
}, // keeps going on
}
},
"BM": {
"country_name": "Bolivia",
"data": {
"180854": {
"time_published": "2012-03-30 13:31:39",
"title": "Example",
},
"180926": {
"time_published": "2012-04-02 05:21:44",
"title": "Industrial PPI inflation eases to 5.5% y/y in February",
}
}
}, // continues
}
所以,我想知道的是有没有办法让JSONObject
的价值:AM
,BM
。他们每次都不一样,所以我不能检查他们,但我希望能够将他们保存为String
。以下是我用来解析JSON的实际内容:
public static void jsonParser(String jsonBuffer){
try {
//String jsonData = new String(jsonBuffer,"UTF-8");
JSONObject json = (JSONObject) new JSONTokener(jsonBuffer).nextValue();
//JSONObject country = json.getJSONObject(String.valueOf(json.keys().next()));
Log.d("","json : "+json);
Iterator<Object> keys = json.keys();
while (keys.hasNext()) {
JSONObject country = json.getJSONObject(String.valueOf(keys.next()));
String countryName = country.getString("country_name");
Log.e("","country_name: "+countryName);
JSONObject data = country.getJSONObject("data");
Iterator<Object> keys2 = data.keys();
while(keys2.hasNext()){
JSONObject datas = data.getJSONObject(String.valueOf(keys2.next()));
String published = datas.getString("time_published");
Log.d("","published : "+published);
String title = datas.getString("title");
Log.w("","title : "+title);
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
因此,如何获得这些值?
答
我不知道我是否正确理解你。您希望将“AM”和“BM”作为字符串值,以便您可以使用国家/地区名称的短标记。
的“AM”的关键是你遍历:keys.next()
String short = String.valueOf(keys.next());
JSONObject country = json.getJSONObject(short);
+0
我没有注意到答案始终在我眼前...无论如何感谢你的答案! – 2012-04-14 14:04:12
+0
请帮助我这个http://*.com/questions/39073000/how-to-get-all-json-object – 2016-08-22 07:44:12
你在当前代码有什么问题? – MKJParekh 2012-04-14 13:46:23