如何在android / java中的json对象中获取json数组的所有标记名称列表

时间:2012-09-20 08:30:15

标签: java android json parsing

我解析json响应有一个小问题,因为每当我发送请求时它都会不断更新。我看到的所有示例都让我们提供了标记名称。我的问题是我正在尝试解析通过API发送的请求中的数据,并且我想在开始解析之前列出JSON对象中存在的所有JSON数组的所有标记。在android中有可能吗? http://api.yamgo.tv/channel?apiKey=187abeefc53f900600dc0fc5b8f913a0&token=892e069fa48eead5e7f84cddafe7f0ba 这是我发送的请求,它给了我一个json响应。它有作为json对象的通道,并且在其中有许多带有标签的json数组,如宝莱坞,娱乐,音乐等。使用在线解析器进行检查以进行检查。我想要这个数组名称列表。我该怎么做。有谁可以帮忙。感谢。

2 个答案:

答案 0 :(得分:6)

我实际上是在我的一位朋友的帮助下弄明白的。需要使用Iterator对象。 这是代码片段

JSONObject channels = jobj.getJSONObject(TAG_CHANNELS);
    Iterator<?> keys=channels.keys();
    while( keys.hasNext() )
    {
        String key = (String)keys.next();
        Log.e("Key", key);
        if( channels.get(key) instanceof JSONArray ){
            jsontags.add(key);
        }
    }

答案 1 :(得分:1)

其中jsonObj是包含一些数据的JSONObject, 通过以下代码,您只能获得字段名称,如果您想要列值,则可以进一步添加键值。

List<String> listArray = new ArrayList<String>();
    Iterator iter = jsonObj.keys();
    int count=0;
    while(iter.hasNext()){
        listArray.add((String)iter.next());
        count +=1;
    }
    System.out.println(listArray);

output: [projector, video_conference, polycom, lcd, digital_phone, speaker_phone]