我已经尝试过列出的几个例子,但由于某些原因它们似乎都没有用,所以我发布了一个新问题。
我有一个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开始的键;团队:"
我尝试了几个不同的迭代器样本,但似乎没有一个对我有用,它开始真的让我感到沮丧。相信我,在问这个问题之前,我已经尝试了很多东西。任何帮助表示赞赏。
答案 0 :(得分:1)
前段时间我遇到过类似的问题。 你可以这样做:
JSONObject results = query.getJSONObject("results");
Iterator<String> iterator = results.keys();
while (iterator.hasNext()) {
JSONObject team = results.getJSONObject(iterator.next());
// do stuff
}