jQuery .getJSON()twitter搜索,结果未定义。

时间:2012-05-29 02:41:03

标签: jquery twitter getjson

jQuery代码:

$(document).ready(function() {
      $('#hit').click(function() {
        $.getJSON("http://search.twitter.com/search.json?q=stackoverflow&callback=?", function(data) {
            alert(data.length);
        });
      });  // #button hit click evnet
});  // document ready

结果未定义。

enter image description here

我在浏览器中手动导航api调用,它确实返回了数据。

enter image description here

为什么我的jQuery getJSON调用未定义结果?

2 个答案:

答案 0 :(得分:3)

$.getJSON("http://search.twitter.com/search.json?q=stackoverflow&callback=?", function(data) {
     alert(Object.keys(data).length);
 });

返回的data是一个对象而不是一个数组,因此data.length未定义。

但并非所有浏览器都支持以上程序。所以你可以尝试:

data.results.length

要检查对象中是否存在密钥(如果您不确定),最好使用它:

if( "key" in object) {

}

对于你的情况:

if( "results" in data) {

}

如果您的查询无效,Twitter将使用错误对象进行响应,以确认您可以使用的成功查询结果:

if("error" in data) {

}

还有另一个名为hasOwnProperty()

的流程
if(data.hasOwnProperty("results")) {

}

答案 1 :(得分:1)

如果查看返回的有效负载,实际结果将在名为results的属性中。所以,试试:

alert(data.results.length)