#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 + ''); }
Комментариев нет:
Отправить комментарий