Heim  >  Fragen und Antworten  >  Hauptteil

jQuery Ajax kann kein komplexes JSON erhalten?

Der JSON-Dateicode lautet wie folgt:

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

Der Skriptcode lautet wie folgt:

$.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;
} 
});

Das aktuelle Problem ist:
Die data.recommendation in der Funktion $.each() scheint nicht auf diese Weise verwendet zu werden (?) Die Warnung zeigt „Interner Serverfehler“ an und der Fehlercode ist 500,4.
Versuchen Sie, es in Daten zu ändern und die folgenden Elemente item.food und item.price in item.name zu ändern. Item.average kann JSON normal abrufen (der JSON-Pfad ist korrekt). Wenn ich also das Essen und den Preis in der Empfehlung sehen möchte, wie soll ich den Code ändern?

巴扎黑巴扎黑2681 Tage vor787

Antworte allen(5)Ich werde antworten

  • 漂亮男人

    漂亮男人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那行删了应该就没问题了,这么写其实就是省字)

    Antwort
    0
  • 为情所困

    为情所困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);
           })

    Antwort
    0
  • 淡淡烟草味

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

    这个json并不复杂,500的话可能先确定是不是服务器问题

    Antwort
    0
  • 给我你的怀抱

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

    500 是服务器端出错了

    Antwort
    0
  • 阿神

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

    AJAX回调成功后,用console.log(data)先看看服务器传过来的,和你想要的数据是不是一致。
    其实500错误,就是服务器错误,和$.each()怎么用没半毛钱关系,别人是无辜的

    Antwort
    0
  • StornierenAntwort