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