Maison  >  Questions et réponses  >  le corps du texte

jQuery ajax ne peut pas obtenir de json complexe ?

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 ?

巴扎黑巴扎黑2732 Il y a quelques jours830

répondre à tous(5)je répondrai

  • 漂亮男人

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

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

    répondre
    0
  • 为情所困

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

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

    répondre
    0
  • 淡淡烟草味

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

    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

    .

    répondre
    0
  • 给我你的怀抱

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

    500 est une erreur côté serveur

    répondre
    0
  • 阿神

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

    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

    .

    répondre
    0
  • Annulerrépondre