我在解析来自 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>
:
但是这个设置确实:
这是否意味着 twitter api 中有一些东西导致它以无效的 json 格式出现?
编辑:我仍然有同样的问题,但我想添加它以防它可能有帮助。
Jquery 是由它到达 $.parseJSON() 行的时间定义的,因为我尝试在该行之前和之后添加 jquery 代码。所以问题肯定出在 twitter 的 api 返回的内容上。但我很难相信他们给了我无效的 json 格式数据。那么在使用 $.parseJSON() 之前我必须对结果做些什么吗?