2012-10-17 66 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>"); 
}