javascript - jQuery ajax無法取得複雜的json?
巴扎黑
巴扎黑 2017-05-19 10:34:09
0
5
831

JSON檔案程式碼如下:

[
{
"name":"炭火烤肉",
"imgsrc":"img/classification.jpg",
"average":167,
"address":"综合楼3楼",
"classify":"bbq",
"recommendation":[
{"food":"和牛拼盘","price":198},
{"food":"精选套餐","price":320},
{"food":"特选牛舌","price":58}
]
}
]

script程式碼如下:

$.ajax({
   url: "json/food.json",
   type: "post",
   dataType: "json", 
   success: function(data) {
       $.each(data.recommendation, function(i, item) {
            var str = '<p>店名:' + item.food + '人均:' + item.price + '</p>';
            document.write(str);
       })
   },
   error : function(XMLHttpRequest, textStatus, errorThrown) {
    alert(XMLHttpRequest.responseText); 
           alert(XMLHttpRequest.status);
           alert(XMLHttpRequest.readyState);
           alert(textStatus); // parser error;
} 
});

目前的問題是:
$.each()函數裡的data.recommendation似乎不能這麼用(?),alert顯示“內部伺服器錯誤”,錯誤碼是500,4。
嘗試著改成data並把後面的item.food ,item.price改成item.name,item.average能正常取得json(json路徑沒錯)。那如果我想取得recommendation裡的food和price該怎麼改程式碼呢?

巴扎黑
巴扎黑

全部回覆(5)
漂亮男人
$.getJSON("json/food.json", function(data) {
       $.each(data.recommendation, function(i, item) {
            var str = '<p>店名:' + item.food + '人均:' + item.price + '</p>';
            document.write(str);
       });
  });

(其實我覺得把post那行刪了應該就沒問題了,這麼寫其實就是省字)

为情所困

你上面的json檔案裡面是一個數組,所以需要存取data[0].recommendation,才能存取到資料;你可以用console.log(data)是一個[object],這樣你就知道怎麼解決了。

 $.each(data[0].recommendation, function(i, item) {
            var str = '<p>店名:' + item.food + '人均:' + item.price + '</p>';
            document.write(str);
       })
淡淡烟草味

這個json並不複雜,500的話可能先確定是不是伺服器問題

给我你的怀抱

500 是伺服器端出錯了

阿神

AJAX回呼成功後,用console.log(data)先看看伺服器傳過來的,和你想要的資料是不是一致。
其實500錯誤,就是伺服器錯誤,和$.each()怎麼用沒半毛錢關係,別人是無辜的

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!