1

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

4

2 回答 2

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);
        }
    }
于 2012-09-20T10:02:18.070 回答
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]
于 2013-02-12T06:54:36.333 回答