Rumah  >  Soal Jawab  >  teks badan

jQuery ajax tidak boleh mendapatkan json yang kompleks?

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?

巴扎黑巴扎黑2681 hari yang lalu784

membalas semua(5)saya akan balas

  • 漂亮男人

    漂亮男人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);
           });
      });

    (Sebenarnya, saya rasa tidak mengapa jika saya memadamkan baris siaran. Menulisnya dengan cara ini sebenarnya menjimatkan perkataan)

    balas
    0
  • 为情所困

    为情所困2017-05-19 10:36:09

    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.

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

    balas
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-19 10:36:09

    Json ini tidak rumit Jika 500, anda boleh tentukan dahulu sama ada ia masalah pelayan

    balas
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-19 10:36:09

    500 adalah ralat di bahagian pelayan

    balas
    0
  • 阿神

    阿神2017-05-19 10:36:09

    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

    balas
    0
  • Batalbalas