0

Twitterの検索結果からURLを取得しようとしていますが、配列で未定義になっています。なぜURLを取得できないのか誰かが知っていますか?

    function get(){
    var array=[];
        $.getJSON("http://search.twitter.com/search.json?q=euronews&rpp=5&
        include_entities=true&result_type=mixed&callback=?",
      function(data){
   $.each(data.results, function(i, item){
      var user=item.from_user;
      var user_id=item.from_user_id;
      var date=item.created_at;
      var profile_img=item.profile_image_url;
      var url=item.entities.urls[0].url;
    create_array(user,user_id,date,profile_img,url);
     });

    function create_array(a,b,c,d,e){
         array.push({user:a,user_id:b,date:c,profile_img:d,url:e});

                    }console.log(array);
}); 
}

これは、Twitterの検索結果から取得したjsonファイルの構造です: http ://search.twitter.com/search.json?q = euronews&rpp = 5&include_entities = true&result_type = mixed

乾杯 :))

4

1 に答える 1

1

取得する理由undefinedは、item.entities.urlsが配列であるためです。すべての結果に配列があるわけではないことがわかります。これはあなたのために働くはずです:

var array = [];

$.getJSON("http://search.twitter.com/search.json?q=euronews&rpp=5&include_entities=true&result_type=mixed&callback=?",
    function(data){
        $.each(data.results, function(i, item){
            array.push({
                user: item.from_user,
                user_id: item.from_user_id,
                date: item.created_at,
                profile_img: item.profile_image_url,
                url: (item.entities.urls.length > 0 ? item.entities.urls[0].url : '')
            });
        });
        console.log(array);
    }
);
于 2012-08-08T15:16:15.020 に答える