2

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

結果は未定義です。

ここに画像の説明を入力してください

ブラウザでAPI呼び出しを手動でナビゲートしますが、データが返されます。

ここに画像の説明を入力してください

jQuery getJSON呼び出しで結果が定義されていないのはなぜですか?

4

2 に答える 2

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")) {

}
于 2012-05-29T02:42:16.897 に答える