迭代JSONObjects

时间:2014-06-26 12:59:18

标签: android json key iteration

我已经尝试过列出的几个例子,但由于某些原因它们似乎都没有用,所以我发布了一个新问题。

我有一个JSON字符串,但它是所有对象(它没有格式化为数组)。我需要从中解析出团队名称。我知道我需要迭代它们,因为它们是键,然后将对象存储在一个新的数组中。

这是JSON(它的一个样本)

  

{"查询" {" printrequests":[{"标签":""" typeid的&#34 ;:" _wpg""模式":2"格式":假}],"结果" {"队:Kubbchucks" {"打印输出":[],"全文":"小组:Kubbchucks"" fullurl":&# 34; http://wiki.planetkubb.com/wiki/Team:Kubbchucks""命名空间":822,"存在":真}"球队:Kubbchucks   IDP" {"打印输出":[],"全文":"球队:Kubbchucks   IDP"" fullurl":" http://wiki.planetkubb.com/wiki/Team:Kubbchucks_IDP""命名空间":822,"存在":真} },"串行":" SMW \串行器\ QueryResultSerializer""版本":0.5"元" {"散列& #34;:" 8407a177d701d746edc3066a012c17d2""计数":2"偏移":0}}}

到目前为止,我已经深入了解JSON的那个级别(数据是上面的字符串)

JSONObject parsing = new JSONObject(data);
JSONObject query = parsing.getJSONObject("query");
JSONObject results = query.getJSONObject("results");

这允许我使用以下方式手动检查团队:

JSONObject teamone = results.getJSONObject("Team:Kubbchucks");

这当然不太理想。完整的JSON文件有近3000个条目,我不知道这些条目是什么。我需要迭代结果对象以获得以&#34开始的键;团队:"

我尝试了几个不同的迭代器样本,但似乎没有一个对我有用,它开始真的让我感到沮丧。相信我,在问这个问题之前,我已经尝试了很多东西。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

前段时间我遇到过类似的问题。 你可以这样做:

JSONObject results = query.getJSONObject("results");
Iterator<String> iterator = results.keys();
while (iterator.hasNext()) {
    JSONObject team = results.getJSONObject(iterator.next());
    // do stuff
}