循环通过JSON数组不起作用

时间:2014-05-24 22:54:33

标签: javascript jquery arrays json loops

我正在使用Youtube的api检索json信息数组。我想循环遍历"项目"整个数组中的数组,用于访问每个项目的视频ID。

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时,我得到相同的错误。

1 个答案:

答案 0 :(得分:1)

你应该修改一下你的每个函数,因为你引用了错误的对象:

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

Fiddle