Я проанализировал несколько простых json в прошлом, но этот дает мне немного больше проблем. Я пытаюсь получить данные из Википедии «в этот день в истории»Android java problem parsing JSON
Теперь, если вы поп URL 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();
Это возвращает все в массиве пересмотров, что приводит меня к следующему вопросу ... есть простой способ, чтобы разобрать этот вывод?
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();
2-я часть вопроса есть простое решение для разбора такого вывода. Вот надрез:
":" {{рр-перемещение-indef}} {{сентябрь календарь | поплавок = правый}} \ п {{ThisDateInRecentYears}} \ п {{день}} \ n \ n == События == \ n * [[456]] – [[Remistus]], римский генерал ('' [[magister militum]] ''), [[Siege | besiege]] d с [[Готы | Готические]] силы на [[Равенна]], а затем выполнен во Дворце '' в Classis '', за пределами города. \ n * [[1111]] – Высшее галисийское знати во главе с [[Педро Fr \ u00f3ilaz de Traba]] и епископом [[Diego Gelm \ u00edrez]] короной [[Alfonso VII of Le \ u00f3n и Castile | Alfonso VII]] как [»[[королевство Галиция | Царь Галиции]] \". \ N * [[1176]] – [[битва Myriokephalon]] сражается. \ N * [[1462]] – [[Battle of \ u015awiecino]] (также известная как битва \ u017barnowiec) сражается во время [[Тринадцатилетняя война (1454 \ u201366) | Тринадцать лет Война]]. \ N * [[ 1577]] – [[Мир Бержерак]] подписан между [[Генри III Франции]] и [[Гугеноты]]. \ N * [[1630]] – город [[Бостон]]
http://developer.android.com/reference/org/json/JSONObject.html#keys() – Selvin
Спасибо! очень полезно – Paul
У меня нет второго вопроса? – njzk2