jQuery ajax ne peut pas obtenir de json complexe ?
巴扎黑
巴扎黑 2017-05-19 10:34:09
0
5
847

Le code du fichier JSON est le suivant :

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

Le code du script est le suivant :

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

Le problème actuel est :
La data.recommendation dans la fonction $.each() ne semble pas être utilisée de cette manière (? L'alerte affiche "Internal Server Error" et le code d'erreur est 500,4).
Essayez de le remplacer par data et remplacez les éléments item.food et item.price suivants par item.name. Item.average peut obtenir json normalement (le chemin json est correct). Donc, si je souhaite obtenir la nourriture et le prix dans la recommandation, comment dois-je modifier le code ?

巴扎黑
巴扎黑

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

(En fait, je pense que ça devrait aller si je supprime la ligne de message. L'écrire de cette façon sauve des mots)

为情所困

Le fichier json ci-dessus est un tableau, vous devez donc accéder à data[0].recommendation pour accéder aux données, vous pouvez utiliser console.log(data) qui est un [objet], vous savez donc comment résoudre ; il .

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

Ce json n'est pas compliqué S'il vaut 500, vous pouvez d'abord déterminer s'il s'agit d'un problème de serveur

.
给我你的怀抱

500 est une erreur côté serveur

阿神

Une fois le rappel AJAX réussi, utilisez console.log(data) pour voir si les données envoyées par le serveur sont cohérentes avec les données souhaitées.
En fait, l'erreur 500 est une erreur de serveur et n'a rien à voir avec la façon dont $.each() est utilisé. Les autres sont innocents

.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal