【问题标题】:Trying to get data out of the youtube api试图从 youtube api 中获取数据
【发布时间】:2015-09-18 11:15:05
【问题描述】:

所以我正在尝试使用 Ajax 从 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 所有数据。它给了我以下数据:

正如您在屏幕截图中看到的那样,由于某种原因,它给了我 5 次所有数据。此外,当我将 'console.log(data)' 替换为 'console.log(data.items.id)' 时,它会在我的控制台中显示以下内容:

由于某种原因,它给了我所有 x5 的数据,而且它似乎也没有识别“项目”。有谁知道我的代码出了什么问题?

【问题讨论】:

  • 你的内部函数不带参数。试试data.forEach(console.log)
  • 所以我必须替换 $.each(data, function () { console.log(data); });根据你刚才输入的内容?
  • 是的。但它只会将数据写入控制台。
  • 好吧,我已经按照你说的做了,它在控制台中给了我这个错误:Uncaught TypeError: data.forEach is not a function
  • 或者:data.forEach(function(e) { console.log(e); })

标签: ajax json api youtube-api


【解决方案1】:

也许这些方面的东西会起作用:

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) 签名,以便您可以在迭代器函数中访问它们。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-17
    • 2022-07-04
    • 2012-07-12
    • 2011-10-19
    • 1970-01-01
    • 2012-08-24
    • 2017-02-13
    • 2019-09-20
    相关资源
    最近更新 更多