Я новичок в разработке Android и новых для JSON. Я использую карту расстояния google maps api. Я уверен, что JSON загружается в JSONObject (я украл код, чтобы сделать это из другого сообщения). Однако я не могу правильно разобрать JSON. Я работаю над этим несколько дней, и я полностью в тупике. Я делаю следующий вызов Google нижеРазбор JSON с Google Maps DistanceMatrix api в android
https://maps.googleapis.com/maps/api/distancematrix/json?origins=1600%20pennsylvania%20avenue&destinations=1500%20college%20street&mode=driving&units=imperial
Выход заключается в следующем:
{
"destination_addresses" : [ "1500 College Street, Beaumont, TX 77701, USA" ],
"origin_addresses" : [ "1600 Pennsylvania Avenue, Hagerstown, MD 21742, USA" ],
"rows" : [
{
"elements" : [
{
"distance" : {
"text" : "1,306 mi",
"value" : 2102536
},
"duration" : {
"text" : "18 hours 48 mins",
"value" : 67684
},
"status" : "OK"
}
]
}
],
"status" : "OK"
}
Я попытался:
1.
JSONArray jsonArray = jObject.getJSONArray("rows");
JSONArray routes = jsonArray.getJSONArray(0);
stringBuilder.append(routes.getJSONObject(0).getString("text"));
2.
JSONArray jsonArray = jObject.getJSONArray("rows");
JSONObject routes = jsonArray.getJSONObject(0);
stringBuilder.append(routes.getJSONObject("distance").getString("text"));
3.
JSONArray jsonArray = jObject.getJSONArray("elements"); stringBuilder.append(routes.getJSONObject(0).getString("text"));
я пытался больше, но те, мне кажется, что они должны работать. Мне казалось, что строки - это массив, а элементы - массив. Таким образом, мне нужно было бы получить строки из исходного JSONObject, а затем получить массив элементов из массива строк, а затем получить объект расстояния из этого массива, а затем, наконец, получить текстовое значение и добавить его в построитель строк I созданный ранее. Были ли я ошибаюсь? Спасибо заранее за любую помощь.
* Я попробовал почти все, и он продолжает бросать различные исключения. *, То покажите нам, что если бы вы попробовали и то, что исключение вы получение ... также перед тем, как просить Google об этих исключениях ... – Selvin
Я отредактировал его, чтобы показать некоторые из них. Я сделал исключения Google. Однако я не думал, что это имело какой-то смысл. Например, в случае, если одно говорит о вещи в позиции 0 объекта jsonArray не является массивом. Однако не будет ли это элементом, который является массивом? – eam1813
'rows' - это массив, тогда * первый элемент * - это объект, а затем свойство' elements' этого объекта это массив, тогда * первый элемент * является объектом с свойством 'distance' ... который является объектом ... который имеет' text' property ... в 2-м вы почти там ... но вы забыли о 'elements' array – Selvin