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該怎麼改程式碼呢?
漂亮男人2017-05-19 10:36:09
$.getJSON("json/food.json", function(data) {
$.each(data.recommendation, function(i, item) {
var str = '<p>店名:' + item.food + '人均:' + item.price + '</p>';
document.write(str);
});
});
(其實我覺得把post那行刪了應該就沒問題了,這麼寫其實就是省字)
为情所困2017-05-19 10:36:09
你上面的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);
})
阿神2017-05-19 10:36:09
AJAX回呼成功後,用console.log(data)先看看伺服器傳過來的,和你想要的資料是不是一致。
其實500錯誤,就是伺服器錯誤,和$.each()怎麼用沒半毛錢關係,別人是無辜的