data.result.response.airport.pluginData.schedule.arrivals.data [i] .flight.airport [i] не определен

0

Привет, я снова создаю приложение для расписания аэропортовой информации для полета данных аэропорта arr и dep, у меня есть много массивов и я смущен, чтобы использовать, я пытаюсь использовать этот способ для кодирования, но не работает.

json array

введите описание изображения здесь

Ошибка: http://www.3rbz.com/uploads/49fe2aa262501.png

(function() {
  var app = angular.module('starter.bgw', ['ionic']);

  app.controller('myctlr', function($scope, $http) {
    var service_url = "/airport.json?code=bgw";
    $http.get(service_url)
      .success(
        function(data) {
          $scope.city= data.result.response.airport.pluginData.details.name;
            console.log(data);
            bord = [];

            for(i=0; i<36; i++) {                 
              var arr  = data.result.response.airport.pluginData.schedule.arrivals.data[i].flight.airport[i].origin[i].name;
              bord.push({ arr: arr });
            }                   
        })
    })
  })();

JSON

{
  "result": {
    "response": {
      "airport": {
        "pluginData": {
          "schedule": {
            "arrivals": {
              "page": {
                "current": 1,
                "total": 2
              },
              "data": [
                {
                  "flight": {
                    "airport": {
                      "origin": {
                        "name": "Bahrain International Airport"
                      }
                    }
                  }
                }
              ]
            }
          }
        }
      }
    }
  }
}

get error Ошибка: data.result.response.airport.pluginData.schedule.arrivals.data[i].flight.airport[i] is undefined

  • 0
    заменить .flight.airport[i].origin[i].name; с .flight.airport.origin.name;
  • 0
    та же самая, теперь работающая Error: data.result.response.airport.pluginData.schedule.arrivals.data.flight is undefined
Теги:

2 ответа

0

Попробуй это. В соответствии с вашим json, только data являются array (я предполагаю, что у вас по крайней мере 36 объектов в array data)

(function() {
  var app = angular.module('starter.bgw', ['ionic']);

  app.controller('myctlr', function($scope, $http) {
    var service_url = "/airport.json?code=bgw";
    $http.get(service_url)
      .success(
        function(data) {
          $scope.city= data.result.response.airport.pluginData.details.name;
            console.log(data);
            bord = [];

            for(var i=0; i<36; i++) {                 
              var arr  = data.result.response.airport.pluginData.schedule.arrivals.data[i].flight.airport.origin.name;
                  bord.push({ arr: arr });
console.log(arr);
                }                   
            })
        })
  })();
  • 0
    привет, спасибо за ответ, вы исправили 50%, но у меня все еще есть ошибка Error: data.result.response.airport.pluginData.schedule.arrivals.data[i] is undefined см. рис. 3rbz.com/uploads/96dd085f2c4e1.png
  • 0
    я использую так в html: <div class="row" ng-repeat="day in bord"> <h3>{{day.flights}}<h3> </ion-content></ion-pane>
Показать ещё 2 комментария
0

airport[i] - это не массив (также origin), а объект в вашем примере json:

{
   "flight": {
     "airport": {
       "origin": {
         "name": "Bahrain International Airport"
        }
     }
   }
}

Затем вы можете получить name с этой строкой:

data.result.response.airport.pluginData.schedule.arrivals.data[i].flight.airport.origin.name;

data должны иметь 36 элементов для этого цикла: for(var i=0; i<36; i++)

  • 0
    та же ошибка, см. рис 3rbz.com/uploads/49fe2aa262501.png
  • 0
    Можете ли вы войти i и data[i] в каждом цикле?
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню