JSON PARSION API в Android Приложение

Я пытаюсь использовать 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
               },

10
задан Community 23 May 2017 в 12:01
поделиться