Kod fail JSON adalah seperti berikut:
[
{
"name":"炭火烤肉",
"imgsrc":"img/classification.jpg",
"average":167,
"address":"综合楼3楼",
"classify":"bbq",
"recommendation":[
{"food":"和牛拼盘","price":198},
{"food":"精选套餐","price":320},
{"food":"特选牛舌","price":58}
]
}
]
Kod skrip adalah seperti berikut:
$.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;
}
});
Masalah semasa ialah:
Data.syor dalam fungsi $.each() nampaknya tidak digunakan dengan cara ini (?) Amaran memaparkan "Ralat Pelayan Dalaman" dan kod ralat ialah 500,4.
Cuba tukar kepada data dan tukar item.food dan item.price berikut kepada item.name.average boleh mendapatkan json secara normal (laluan json adalah betul). Jadi jika saya ingin mendapatkan makanan dan harga dalam pengesyoran, bagaimanakah saya harus menukar kod tersebut?
(Sebenarnya, saya rasa tidak mengapa jika saya memadamkan baris siaran. Menulisnya dengan cara ini sebenarnya menjimatkan perkataan)
Fail json di atas ialah tatasusunan, jadi anda perlu mengakses data[0].syor untuk mengakses data anda boleh menggunakan console.log(data) yang merupakan [objek], supaya anda tahu cara menyelesaikannya ia.
Json ini tidak rumit Jika 500, anda boleh tentukan dahulu sama ada ia masalah pelayan
500 adalah ralat di bahagian pelayan
Selepas panggilan balik AJAX berjaya, gunakan console.log(data) untuk melihat sama ada data yang dihantar oleh pelayan adalah konsisten dengan data yang anda inginkan.
Malah, ralat 500 adalah ralat pelayan dan tiada kaitan dengan cara $.each() digunakan