无法解析来自twitter api的json数据

时间:2011-10-30 21:40:48

标签: jquery json twitter

我正在尝试根据id获取一个twitter用户名列表,但我不能让jquery解析为twitter api返回的json数据。而不是显示我得到的名称:[object Object]。我检查了结果,看起来它是有效的json数据。我需要帮助了解如何使用数据。

这是我正在使用的代码:

    $.getJSON('https://api.twitter.com/1/users/lookup.json?user_id=16917715', function(data) {
    var items = [];
      $.each(data, function(key, val) {
        items.push('<li id="' + key + '">' + val + '</li>');
      });
      $('<ul/>', {
        'class': 'twitter-names-list',
        html: items.join('')
      }).appendTo('#follower-names');
});

3 个答案:

答案 0 :(得分:0)

我很确定你需要使用JSONP而不是JSON。通常你不能进行跨域的ajax调用,这可能是这里失败的。这是一个很好的article on the subject

IIRC您只需将&callback=?添加到您的GET请求即可。这会使您的请求$.getJSON('https://api.twitter.com/1/users/lookup.json?user_id=16917715&callback=?',...

jQuery会用动态函数替换?以处理数据,它应该更适合你

答案 1 :(得分:0)

&callback=?添加到网址以检索数据

$.getJSON('https://api.twitter.com/1/users/lookup.json?user_id=16917715&callback=?', function(data) {
    console.log(data);
});

答案 2 :(得分:0)

我没有使用过API,但从查看https://dev.twitter.com/docs/api/1/get/users/lookup开始,结果似乎是一个对象数组。如果我正确地读取您的代码,则表明您正在迭代数组,而不是数组中对象的属性。我会将您当前的$.each()电话打包在

for( var x = 0; x < data.length; x++ )
{
    $.each(data[ x ], function(key, val){
    ...
    });
}