Привет всем Я пытаюсь разобрать JSON-файл из этого LINK.JSON parse for TFL Open Data
Возвращенный JSON является следующим образом-
мне нужно для перебора всех экземпляров journeys
во-первых, то у меня есть цикл по legs
для каждого journeys
, чтобы получить detailed
инструкция. Как вы можете видеть каждый legs
состоит из instruction
в части, которая возвращает string
, моя конечная цель состоит в том, чтобы объединить эти string
для каждого путешествия и отображать их как TextView
. Таким образом, для приведенного выше JSON конечной целью является, чтобы показать -
Юбилейной линии к Stratford, или Северной Гринвич
Северной линии в направлении Эджвар, или High Барнет
До сих пор Я пробовал пройти через этот JSON
без везения.
Вот код, я работаю on-
try {
//object is the JSON file.
JSONArray Journey = object.getJSONArray("journeys");
if (Journey != null) {
//Retrieving number of possible routes.
for (int i=0;i<Journey.length();i++){
Routes.add(Journey.getJSONObject(i));
}
//Retrieving number of possible legs for each route.
if (!Routes.isEmpty()){
for (int j = 0; j< Routes.size(); j++){
Legs.add(j, Routes.get(j).getJSONArray("legs"));
}
//Trying to retrieve the detailed instruction here and failing.
for(int k=0;k<Routes.get(k).getJSONArray("legs").length();k++){
instructionDetail.add(k,Legs.get(k).getJSONObject(k).getJSONObject("instruction"));
}
}
}
} catch (JSONException e) {
e.printStackTrace();
}
Я считаю, что мой подход является неправильным, и я не получил право рамочного .. Предложений для разбора и навигации и любой другой подход будет высоко оценили!
Спасибо!
UPDATE:
Извините, я пропустил объект инструкции, я отредактировал ответ. –
Спасибо! Не могли бы вы немного объяснить мне код? Я новичок! – envyM6
Да, в основном после того, как вы получите массив путешествий, вы проходите его и проверяете каждый объект json, если в нем есть «ноги». Затем вы получаете массив ножек и пересекаете его в другом цикле и проверяете, есть ли у него «инструкция». Когда вы его находите, вы получаете объект инструкции и получаете детальную строку. OptString аналогична getString, за исключением того, что вы можете дать откат –