$ .getJSON返回" undefined"来自github的值

时间:2015-01-28 23:40:47

标签: jquery ajax json undefined

我刚刚开始进入一些ajax,我正在试图弄清楚如何使用jsonp从网站中提取数据。我正在尝试拉取jQuery github帐户信息并将其显示在浏览器中。唯一的问题是我继续接收未定义的两个值,我试图从json数据中的每个数组中提取。当我进入控制台进行错误检查时,我可以清楚地看到所有json数据文件信息。另一个问题是,虽然有许多不同的条目,但each循环在停止打印之前只进行两次迭代。我的jQuery代码如下。

var url = 'https://api.github.com/users/jquery/repos';
$('#letter-h a').click(function(event){
event.preventDefault();
$.getJSON(url + '?callback=?', function(data){
        var html = '';
        $.each(data, function(entryIndex, entry){
            html += '<div class="entry">';
            html += '<h3 class="term">' + entry.id + '</h3>';
            html += '<div class="part">' + entry.name + '</div>';
            html += '</div>';
        });
        $('#dictionary').html(html);
    });
});

我在这个网站上查看了很多不同的问题(因为这个问题显然经常被问到)试图提供帮助,但没有一个建议有效。其中包括entry[entryIndex].iddata.entry.iddata.id

1 个答案:

答案 0 :(得分:1)

github api似乎根据响应类型(JSONP vs JSON)做出不同的响应。对于json,它会响应[...]。对于jsonp,它会响应{data:[...], meta:{...}}

我建议只添加:

data = data.length ? data : data.data;

到回调的第一行。