Я пытаюсь использовать API Google Maps, чтобы получить время направления. Я надеюсь создать URL, получите ответ JSON, а затем осмотрите этот ответ на продолжительность поездки. После того, как я создаю объект JSON, у меня проблемы с навигацией навигации. Для меня это указывает на то, что я либо запутал получение ответа или навигации по объекту JSON. Я был бы признателен за это, если бы вы могли заглянуть на биты и куски кода, я прошил вместе из учебных пособий по всей сети.
Этот код предназначен для получения ответа. Он окружен попробовать / поймать, и оно не вызвало никаких ошибок.
String stringUrl = ;
URL url = new URL(stringUrl);
HttpURLConnection httpconn = (HttpURLConnection)url.openConnection();
if (httpconn.getResponseCode() == HttpURLConnection.HTTP_OK)
{
BufferedReader input = new BufferedReader(new InputStreamReader(httpconn.getInputStream()),8192);
String strLine = null;
while ((strLine = input.readLine()) != null)
{
response.append(strLine);
}
input.close();
}
String jsonOutput = response.toString();
Этот код предназначен для того, чтобы принять этот выход и разбирать его в конечную строку, продолжительность, так как вдохновленные этот ответ этот ответ для аналогичного вопроса.
JSONObject jsonObject = new JSONObject(jsonOutput);
JSONObject routeObject = jsonObject.getJSONObject("routes");
JSONObject legsObject = routeObject.getJSONObject("legs");
JSONObject durationObject = legsObject.getJSONObject("duration");
String duration = durationObject.getString("text");
Я ловлю исключение JSON на второй строке второго блока. Может кто-нибудь помочь это исправить? Или, возможно, предложить более простой способ получить те же данные?
Редактировать: Благодаря первого полезного ответа здесь (из Aromero), последняя половина сейчас выглядит:
JSONObject jsonObject = new JSONObject(responseText);
JSONArray routeObject = jsonObject.getJSONArray("routes");
JSONArray legsObject = routeObject.getJSONArray(2); ***error***
JSONObject durationObject = legsObject.getJSONObject(1);
String duration = durationObject.getString("text");
, но он все еще бросает исключение JSON, только сейчас Это после третьей строки. Я уверен, что это смущает легко исправить, но я бы очень ценю помощь.
Соответствующая часть примера файла JSON показана ниже:
{
"routes" : [
{
"bounds" : {
"northeast" : {
"lat" : 34.092810,
"lng" : -118.328860
},
"southwest" : {
"lat" : 33.995590,
"lng" : -118.446040
}
},
"copyrights" : "Map data ©2011 Google",
"legs" : [
{
"distance" : {
"text" : "12.9 mi",
"value" : 20807
},
"duration" : {
"text" : "27 mins",
"value" : 1619
},