我已經解析過一些簡單的json,但是這個給了我更多的麻煩。我想「在歷史上的這一天」Android java解析JSON問題
如果彈出JSON網址爲擺脫維基百科的數據現在: http://jsonlint.com/獲得擊穿麻煩的第一個位我已經是在這個例子之後的對象之後的「27993」總是會有所不同,那麼如果我不知道這個名字,我該如何獲取它呢?
出於測試目的,我有這樣的代碼至今:
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();
,返回修改陣列,使我對我的下一個問題的一切...有一個簡單的方法來解析輸出?
編輯:解決問題#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-布展INDEF}} {{九月 日曆|浮子=右}} \ N {{ThisDateInRecentYears}} \ n {{日}} \ n \ n ==事件== \ n * [[456]] – [[Remistus]],羅馬將軍(''[[magister militum]]'')是[[Siege | besiege]] d一個[[Goths | Gothic]]力量 [[Ravenna]],後來在城市的 之外的宮殿''在Classis''執行。 \ n * [[1111]] –由[[Pedro Frézde Traba]]和主教[Diego Gelm \ u00edrez]皇冠 [León和Castile的Alfonso VII | Alfonso \ n [[1176]] [[1276]] [[[1262]] [[戰爭的 Myriokephalon]]是戰鬥。\ n [[1462]] –在[[十三年戰爭(1454年)|十三年' 戰爭]]期間,[[Battle of of [ \ u015awiecino]](也稱爲\ u017barnowiec戰役)戰鬥 。\ n * [[ 1577]] – [[貝爾熱拉克的和平]]在 [[法國的亨利三世]]和[[胡格諾茨]]之間簽署。\ n * [[1630]] – 城市[波士頓]
http://developer.android.com/reference/org/json/JSONObject.html#keys() – Selvin 2013-04-24 14:07:17
致謝!非常有幫助 – Paul 2013-04-24 14:17:58
我不明白你的第二個問題嗎? – njzk2 2013-04-24 14:27:51