2011-03-03 4 views
0

안녕하세요 저는 Twitter에서 검색 결과를 검색하여 간단한 AJAX 작업을하려고하고 있습니다. 그것은 객체를 되찾고 있지만 객체 자체를 드릴 다운하여 정보 (예 : 텍스트)를 가져올 수 없습니다.트위터 json 객체 undefined (jQuery)

내가 console.log (트윗) 인 경우 모든 개체가 나열되지만 아래 코드는 "정의되지 않음"이라고 말합니다. 나는 쉽게 뭔가를 놓치고 있다고 확신합니다.

여기에서 많은 질문/답변을 읽었지만 아무 것도하지 않는 것 같습니다. 많은 사람들이 .getJSON() 메소드를 사용했지만, .ajax()를 사용하면 ok라고 생각했을 것입니다.

$.ajax({ 
     dataType: 'jsonp', 
     url: 'http://search.twitter.com/search.json?callback=?&q=twitter&rpp=5', 
     success: function (data) { 
      $.each(data, function(i,tweet){ 
       console.log(tweet.text); 
       //$('#twitter ul').append('<li><a href="' + item.text + '">' + item.from_user_id + '</a></li>'); 
      }); 
     } 
    }); 

답변

3

당신은 당신이 작업 샘플 here을 찾을 수 있습니다 data.results

$.ajax({ 
    dataType: 'jsonp', 
    url: 'http://search.twitter.com/search.json?callback=?&q=twitter&rpp=5', 
    success: function (data) { 
     $.each(data.results, function(i,tweet){ 
      alert(tweet.text); 
      //$('#twitter ul').append('<li><a href="' + item.text + '">' + item.from_user_id + '</a></li>'); 
     }); 
    } 
}); 

을 사용해야합니다. 업데이트

:

난 당신이 자바 스크립트와 JSON 데이터 형식에 대한 새로운 생각합니다.

http://search.twitter.com/search.json?callback=?&q=twitter&rpp=5 요청에 의해 반환 된 데이터는 json 형식입니다. 요청에 대한 응답에는 키 값 쌍이 들어 있습니다. 브라우저에 요청 URL을 복사하여 붙여 넣으면 쿼리 결과를 볼 수 있습니다.

{results : [....]}로 시작하는 것은 json 객체에 액세스 할 수있는 항목의 배열이 포함되어 있음을 의미합니다 (results).

결과 어레이의 각 항목은 다음 값

{ 
    "from_user_id_str":"", 
    "profile_image_url":"", 
    "created_at":"", 
    "from_user":"", 
    "id_str":"", 
    "metadata":{"result_type":"recent"}, 
    "to_user_id":null, 
    "text":"", 
    "id":, 
    "from_user_id": 0, 
    "geo":null, 
    "iso_language_code":"en", 
    "to_user_id_str":null, 
    "source":"" 
} 

이러한 키/값의 각각

상기 $.each(function(i, tweet){ .... })tweet.<key name>을 사용하여 액세스 될 수를 포함한다. 예 : tweet.from_user_id_str, tweet.text, tweet.source 등 ...

+0

위대한! 고마워. 나는 데이터에 대해 들어 보지 못했다. 결과. 모호한 멍청한 놈이 있지만 다른 data.X 방법이 있습니까? 맛있는 북마크 (json)를 가져올 때 data.results가 필요하지 않았습니다. '데이터'가 정상적으로 작동했습니다. – Leads