2013-03-21 72 views
0

我无法解析此api。你能看到我做了什么吗?api的jquery解析响应bbyopen

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'); 
       } 
      } 
      }); 

变种拇指= data.products [I]图像配;是我遇到麻烦的地方。对象本身记录(显然是json),但是var thumb返回“Uncaught TypeError:无法读取未定义的属性'图像'。有任何想法吗?

控制台登录 console

+0

是什么'data.products'是一个数组 – 2013-03-21 03:07:00

+0

还添加了一个'console.log(data.products,data.products.length)' – 2013-03-21 03:07:24

+0

我从控制台上面添加了结果 – CaitlinHavener 2013-03-21 03:12:57

回答

0

你需要调用返回的数据JSON.parse()为了使用它作为一个对象。

0

对不起,您的for循环是错误的

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

的数组索引开始从0length - 1,所以你的条件应该是i<data.products.lengthi<=data.products.length

+0

这应该和var thumb = data.products [i] .image没有任何关系。虽然没有价值。 – CaitlinHavener 2013-03-21 03:21:37

+0

是的,当'i'的值变成'data.products.length'即10时,'data.products [10]'是未定义的,因为data.products的索引是0..9而不是0..10 – 2013-03-21 03:23:54