Android(JSONObject)如何获取每个密钥

时间:2014-08-01 07:58:33

标签: android json jsonobject

如果我有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();
}

2 个答案:

答案 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;键名。