Android java解析JSON时遇到问题
我以前解析过一些简单的json,但这次给我带来了更多的麻烦。我试图从维基百科的“历史上的这一天”中获取数据 现在,如果将JSON URL弹出到: 为了得到一个细分,我遇到的第一点麻烦是在页面后面的对象之后,在这种情况下,“27993”将始终是不同的,因此,如果我不知道名称,我如何获取它 出于测试目的,目前为止我有以下代码:Android java解析JSON时遇到问题,java,android,json,Java,Android,Json,我以前解析过一些简单的json,但这次给我带来了更多的麻烦。我试图从维基百科的“历史上的这一天”中获取数据 现在,如果将JSON URL弹出到: 为了得到一个细分,我遇到的第一点麻烦是在页面后面的对象之后,在这种情况下,“27993”将始终是不同的,因此,如果我不知道名称,我如何获取它 出于测试目的,目前为止我有以下代码: JSONObject json = new JSONObject(result); input.close(); JSONObject json2 = new J
JSONObject json = new JSONObject(result);
input.close();
JSONObject json2 = new JSONObject(json.getString("query").toString());
JSONObject json3 = new JSONObject(json2.getString("pages").toString());
JSONObject json4 = new JSONObject(json3.getString("27993").toString());
JSONArray contacts = json4.getJSONArray("revisions");
StringBuilder builder = new StringBuilder();
builder.append(contacts.getString(0));
return builder.toString();
这将返回修订数组中的所有内容,这将引出我的下一个问题…是否有一种简单的方法来解析该输出
EDIT:解决问题的修订代码#1现在关于解析该输出?
JSONObject json = new JSONObject(result);
input.close();
JSONObject json2 = new JSONObject(json.getString("query").toString());
JSONObject json3 = new JSONObject(json2.getString("pages").toString());
Iterator i = json3.keys();
JSONObject j = null;
while (i.hasNext()) {
try {
String key = i.next().toString();
j = json3.getJSONObject(key);
} catch (JSONException e) {
e.printStackTrace();
}
}
JSONArray contacts = j.getJSONArray("revisions");
StringBuilder builder = new StringBuilder();
builder.append(contacts.getString(0));
return builder.toString();
问题的第二部分是解析此类输出的简单解决方案。这里有一个剪报:
“:“{{pp move indef}{{9月
日历| float=right}}\n{{ThisDateInRecentYears}\n{{Day}}\n\n==Events=\n*
[[456]]-[[Remistus]],罗马将军(''[[magister]]
“民兵”]“),是一支[哥特式]军队在
[[Ravenna]]后来在“古典”宫外处决
城市\n*[[1111]]——由[[Pedro]领导的加利西亚最高贵族
Fr\u00f3ilaz de Traba]]和主教[[Diego Gelm\u00edrez]]王冠
[[Le\u00f3n的阿方索七世和卡斯蒂利亚|阿方索七世]]作为\“[[王国]
加利西亚|加利西亚国王]]\“\n*[[1176]]–加利西亚之战
米里奥基法伦之战已打响。\n*[[1462]]–米里奥基法伦之战
\u015awiecino]](也称为\u017barnowiec之战)是一场战斗
在[[十三年战争(1454\u201366)|十三年'
战争].\n*[[1577].[[Bergerac的和平]]由双方签署
法兰西的亨利三世和胡格诺派
[[波士顿]市
JSONObject pages=新的JSONObject(json.getJSONObject(“pages”);
//使用此命令获取ID
迭代器键=pages.keys();
//然后迭代
while(keys.hasNext()){
JSONObject page=newjsonobject(pages.get(keys.next());
//对页面做些什么
}
我不明白你的第二个问题?解析输出。我只是想知道是否有一个简单的解决方案,因为它返回的是:“{{pp move indef}{{9月日历{124; float=right}}}\n{{ThisDateInRecentYears}\n{Day}\n\n==Events=\n*[[456]–罗马将军[[Remistus]](“[[magister militum]]”)在[[Ravenna]]被[[Goths |哥特式]]军队包围,随后在城外的“古典式”宫殿中被处决\n*[[1111]]–等等…谢谢,在你发布这篇文章之前,我确实从那个家伙发布的链接中编写了我自己的代码,但这也很有效!对解析输出有什么想法吗?
JSONObject pages = new JSONObject(json.getJSONObject("pages"));
// Use this to get IDs
Iterator<String> keys = pages.keys();
// Then iterate
while (keys.hasNext()) {
JSONObject page = new JSONObject(pages.get(keys.next()));
// Do something with the page
}