1

我在解析来自 Twitter api 的 jsonP 请求时遇到问题。

我的代码如下:

var processRequest = function(data){

        console.log(data); //outputs what I believe to be correct 
        var result = $.parseJSON(data);
        var text = '';
        console.log("1");//outputs
        $.each(result, function(){
            console.log("2");// doesn't output
            text = this['created_at'];
        });
        console.log(text);//doesn't output
}

$(document).ready(function () {


var url = "https://api.twitter.com/1/statuses/user_timeline.json?include_entities=0&include_rts=0&screen_name=DockersHamptons&count=1&callback=processRequest";

$.ajax({
    type: "GET",
    url:url,
    dataType: 'jsonp',
    data: {},
    success: function (data){
        if(typeof(data.error) != 'undefined') {
            if(data.error != ''){
                //Shouldn't hit here
            }                   
        } else {
            //Shouldn't hit here.   
        }
    }
});

});

我在萤火虫控制台中得到的错误是: TypeError: a is null

但它说错误位于第 2 行的“jquery-1.7.1.min.js”文件中。

我还尝试在 jsfiddle 中使用它,并且此设置不会向以下内容写入任何内容<span></span>

http://jsfiddle.net/kdP8b/1/

但是这个设置确实:

http://jsfiddle.net/3tHXN/2/

这是否意味着 twitter api 中有一些东西导致它以无效的 json 格式出现?

编辑:我仍然有同样的问题,但我想添加它以防它可能有帮助。

Jquery 是由它到达 $.parseJSON() 行的时间定义的,因为我尝试在该行之前和之后添加 jquery 代码。所以问题肯定出在 twitter 的 api 返回的内容上。但我很难相信他们给了我无效的 json 格式数据。那么在使用 $.parseJSON() 之前我必须对结果做些什么吗?

4

1 回答 1

0

我在另一个网站上找到了解决方案。我的问题是 twitter api 已经返回了一个格式良好的 json 字符串。所以我只需要删除 $.parseJSON() 的使用。

var processRequest = function(data){
var text = '';
$.each(data, function(){
    text = this['text'];
});
$("#twitter_update_list").html("<li>"+text+"</li>");
}
于 2012-10-23T17:04:31.547 回答