Цикл по массиву JSON не работает

0

Я получаю json-массив информации, используя Youtube api. Я хочу пройти через массив "items", который находится внутри всего массива, для доступа к каждому идентификатору видео объекта.

results = {
"kind": "youtube#searchListResponse",
"etag": "\"bvxF-DWHx1toJotsdJBeCm43SLs/Z5vAcycCC4VZd3cPfwzTWZ_FrUQ\"",
"nextPageToken": "CAUQAA",
"pageInfo": {
    "totalResults": 1000000,
    "resultsPerPage": 5
},
"items": [
{
    "id": {
    "kind": "youtube#video",
    "videoId": "TvyWRevLG5I"
    }
},
{   
    "id": {
        "kind": "youtube#video",
        "videoId": "P8iKcdh5Ims"
    }
},
{
    "id": {
        "kind": "youtube#video",
        "videoId": "tiRZ7YQKUgQ"
    },
},
{
   "id": {
        "kind": "youtube#video",
        "videoId": "mENb0jX-SD8"
   }
},
{
   "id": {
        "kind": "youtube#video",
        "videoId": "B34hQieOXZs"
   }
}
]
}

Это мой код jquery для циклического перехода:

$.each(results.items, function(i, item) {
    alert(items[i].id.videoId);
});

По какой-то причине я получаю сообщение об ошибке "Не могу прочитать длину свойства" неопределенного ". Также, когда я пытаюсь получить длину (results.items.length), чтобы использовать обычный forloop, я получаю ту же ошибку.

  • 0
    Вы должны использовать Ajax. Пожалуйста, поместите всю вашу функцию jqury здесь
  • 0
    У меня работает (после небольшого изменения)? jsfiddle.net/Nc8VS
Теги:
arrays
loops

1 ответ

1
Лучший ответ

Вы должны исправить немного каждую вашу функцию, потому что вы ссылаетесь на неправильный объект:

$.each(results.items, function(i, item) {
    console.log(item.id.videoId);
});

скрипка

Ещё вопросы

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