如果我有JSON:
{"list_path":{"149":{"1610":{"file":[]},"1599":{"1600":{"1604":{"1605":{"file":[]},"file":[]},"1601":{"1602":{"file":["f485","f484","f482","f481","f480","f479","f478","f477"]},"file":[]},"file":[]},"file":[]},"1609":{"file":[]},"1607":{"file":[]},"1608":{"file":[]},"1606":{"file":[]},"file":[]}}}
但我不知道钥匙。我怎样才能获得每把钥匙。
我尝试使用String key = iter.next();
,但只能获得一个密钥。
喜欢如果我写在149.我想得到1599,1606,1607,1608,1609,1610,文件。
请帮帮我。谢谢。
JSONParser jParser = new JSONParser();
JSONObject jsons = jParser.getJSONFromUrl("http://ap2.finance.xcom.tw:8080/app/?m=z8Ga37UPPQbEDMxR&mode=get_list&user_id=1");
try {
JSONObject status = jsons.getJSONObject("list_path");
Iterator iter = status.keys();
while(iter.hasNext()) {
String key = (String)iter.next();
try {
Object value = jsons.get(key);
} catch (JSONException e) {
Log.d( "Json", "hasNext error");
}
}
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 0 :(得分:0)
试试这个:
JSONObject obj = new JSONObject(yourJsonString);
JSONObject listPathObject = obj.getJSONObject("list_path");
JSONObject object149 = listPathObject.getJSONObject("149");
Iterator<String> iter = object149.keys(); //This should be the iterator you want.
while(iter.hasNext()){
String key = iter.next();
}
你会得到钥匙:
1610
1599
1609
1607
1608
1606
file
答案 1 :(得分:0)
通过http://json.parser.online.fr/
解析您的json层次结构然后检查有多少个JSON对象。 你的代码就在&#34; list_path&#34;只有一把钥匙。 但内部&#34; 149&#34; JSON-Object有6个对象wd整数键和一个带&#34; file&#34;键名。