Попытка получить значение url из результатов поиска twitter

Я пытаюсь получить URL-адрес из результатов поиска в Твиттере, но в массиве получаю значение undefined. Кто-нибудь знает, почему я не получаю 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);
}); 
}

Это структура файла json, которую я получаю из результатов поиска в Twitter: http://search.twitter.com/search.json?q=euronews&rpp=5&include_entities=true&result_type=mixed

ваше здоровье :))


person anjelott1    schedule 08.08.2012    source источник


Ответы (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);
    }
);
person White Elephant    schedule 08.08.2012
comment
В массиве только одно значение, поэтому item.entities.urls [1] будет неопределенным. Разместите свой код в редактировании основного вопроса, чтобы я мог видеть, что вы делаете. - person White Elephant; 08.08.2012
comment
Я должен поместить код в комментарий выше. Вы его видите? В нем написано "Спасибо за редактирование"! Это изменение будет видно только вам, пока оно не будет проверено коллегами. - person anjelott1; 08.08.2012
comment
@anjelos - отклонил вашу правку; добавьте этот код в свой вопрос, как предлагает Белый Слон. - person Ben Mosher; 08.08.2012
comment
TypeError: item.entities.urls [0] не определен - person anjelott1; 08.08.2012
comment
я уже сделал это, и он говорит, что сначала нужно просмотреть, и вы можете просмотреть это - person anjelott1; 08.08.2012
comment
Нет аньелос. @Ben отклонил вашу правку правильно. Вам необходимо отредактировать свой вопрос. - person Christoffer Lette; 08.08.2012
comment
Ошибка типа: item.entities не определен [Прервать эту ошибку] ​​var url = (item.entities.urls.length ›0? Item.entities.urls [0] .url: ''); - person anjelott1; 08.08.2012
comment
теперь он работает @WhiteElephant, но не могли бы вы объяснить мне, что делает этот (item.entities.urls.length ›0? item.entities.urls [0] .url: '')? - person anjelott1; 08.08.2012