2013-03-21 1 views
0

이 API에서 구문 분석하는 데 문제가 있습니다. 내가 한 짓을 볼 수 있니? api bbyopen의 Jquery 구문 분석 응답

PHP의 컬 호출 :

// create a new cURL resource 
$ch = curl_init(); 

// set URL and other appropriate options 
$options = array(CURLOPT_URL => 'http://api.remix.bestbuy.com/v1/products(salePrice<='.$dollars.'&type=Music)?apiKey=gzunxsecretsdssf444&format=json&show=name,salePrice,shortDescription,image', 
       CURLOPT_HEADER => false, 
       CURLOPT_RETURNTRANSFER => 1 
       ); 

curl_setopt_array($ch, $options); 

// grab URL and pass it to the browser 
echo curl_exec($ch); 

// close cURL resource, and free up system resources 
curl_close($ch); 

JS :

$.ajax({ 
      url: "./file.php", 
      type: 'GET', 
      dataType: 'JSON', 
      success: function (data) { 
       console.log("Success"); 
       console.log(data); 
       for(var i=0;i<=data.products.length;i++) 
       { 
        var thumb=data.products[i].image; 
        $('<div class="product" style="background-color:green"><a href=""><img src="'+ thumb +'" alt""/></a></div>').appendTo('#find_stuff_div'); 
       } 
      } 
      }); 

VAR 엄지 data.products = [I] 이미지입니다; 내가 곤경에 처한 곳이다. 객체 자체가 (분명히 json으로) 기록하지만 var thumb은 "Uncaught TypeError : undefined의 속성 'image'를 읽을 수 없습니다. 어떤 아이디어?

콘솔 console

+0

를해야한다'data.products'는 배열 –

+0

입니다 또한 console.log (data.products, data.products.length)를 추가하십시오. –

+0

위 콘솔에서 결과를 추가했습니다. – CaitlinHavener

답변

0

당신은 객체로 사용하기 위해 반환 된 데이터에 JSON.parse()를 호출 할 필요가 로그인합니다.

0

죄송합니다 루프가 잘못

for(var i=0;i<data.products.length;i++) 

의 배열 인덱스 시작 0에서 length - 1에, 그래서 당신의 상태가 i<data.products.length 무엇을하지 i<=data.products.length

+0

var thumb = data.products [i] .image;와 아무 관계가 없어야합니다. 가치가 없다. – CaitlinHavener

+0

예, 'i'의 값이'data.products.length' 즉 10 일 때 data.products의 색인이 0..9가 아니기 때문에'data.products [10] '은 정의되지 않습니다. –