2012-10-17 62 views
1

我在解析来自Twitter api的jsonP请求时遇到问题。解析来自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. 
     } 
    } 
}); 

});

我在Firebug控制台得到的错误是: 类型错误:一个是空

但它说,错误是位于我的“jQuery的1.7.1.min.js”文件中的第2行

我也试过的jsfiddle玩这个周围,这种设置不写任何东西到<span></span>

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

但这个设置的确:

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

这是否意味着有东西在那导致它拿出无效JSON格式Twitter的API?

编辑: 我仍然有这个问题,但我想补充它,以防万一它可能有所帮助。

Jquery的定义是它用$ .parseJSON()命中行的时间,因为我试图在该行之前和之后添加jQuery代码。所以这个问题肯定是由twitter的api返回的。但是我发现很难相信他们给了我无效的json格式数据。那么在使用$ .parseJSON()之前,我还需要做些什么?

回答

0

我在其他网站上找到了解决方案。我的问题是,Twitter的API已经返回一个格式正确的JSON字符串。所以我只需要删除$ .parseJSON()的使用。

var processRequest = function(data){ 
var text = ''; 
$.each(data, function(){ 
    text = this['text']; 
}); 
$("#twitter_update_list").html("<li>"+text+"</li>"); 
}