2015-07-01 17 views
0

所以我想用Ajax从YouTube的API中获取数据。我尝试以下方法:试图从YouTube的API中获取数据

var url = 'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=2&playlistId=PL55713C70BA91BD6E&key=my_key'; 
$.getJSON(url, function (data) { 

    $.each(data, function() { 
      console.log(data); 
    }); 
    }); 

正如你可以看到我有在VAR URL随机播放列表的URL。之后,我正在循环所有这些数据,最后我想要console.log所有的数据。它给我下面的数据:

enter image description here

出于某种原因,它给我的所有数据的5倍,你可以在截图中看到。此外,当我用“的console.log(data.items.id)”代替“的console.log(数据),”它说,在我的控制台如下:

enter image description here

出于某种原因,它给我的一切数据x5,而且它似乎也不能识别'项目'。有没有人知道我的代码中出了什么问题?

+0

你的内部函数不带参数。尝试'data.forEach(console.log)' – marcel

+0

因此我必须替换$ .each(data,function(){ console.log(data); });通过你刚输入的内容? – Max

+0

是的。但它只会将数据写入控制台。 – marcel

回答

0

可能沿着这些路线的东西会工作:

var url = 'https://www.googleapis.com/youtube/v3/playlistItems?part=snippet&maxResults=2&playlistId=PL55713C70BA91BD6E&key={YOUR-API-KEY}'; 

$.getJSON(url, function (data) { 
    data.items.forEach(function (item) { 
      console.log(item.snippet.title); 
    }); 
}); 

如果你想坚持使用jQuery each那么你可以做:

$.getJSON(url, function (data) { 
    $.each(data.items, function (key, value) { 
      console.log(value.snippet.title); 
    }); 
}); 

each功能将手中的每个的将数组中的项添加到您的函数中,以便您需要(key, value)签名,以便您可以在您的迭代器函数中访问它们。