#javascript #jquery #json
Есть json-строка: { "success":true, "data":{ "BKK":{ "origin":"IEV", "destination":"BKK", "price":7936, "transfers":1, "airline":"FZ", "flight_number":730, "departure_at":"2017-01-16T03:20:00Z", "return_at":"2017-03-08T12:10:00Z", "expires_at":"2016-12-29T12:07:13Z" }, "DXB":{ "origin":"IEV", "destination":"DXB", "price":2378, "transfers":0, "airline":"FZ", "flight_number":728, "departure_at":"2017-01-12T14:25:00Z", "return_at":"2017-01-31T19:55:00Z", "expires_at":"2016-12-29T18:48:32Z" } }, "error":null, "currency":"UAH" } И когда я пытаюсь получить доступ к значению поля, например, origin, то получаю ошибку Uncaught TypeError: Cannot read property 'origin' of undefined : for(var i = 0; i < 3; i++) { pwf.append('Пункт отправки:' + json.data[i].origin + ''); } Подозреваю, что это из-за того, что у массивов данных разные ключи, но как решить проблему - не знаю.
Ответы
Ответ 1
json.data не массив, а обычный объект. Можно пройтись по всем его свойствам: for (var p in json.data) { pwf.append('Пункт отправки:' + json.data[p].origin + ''); }
Комментариев нет:
Отправить комментарий