javascript - jQuery ajax无法获取复杂的json?
巴扎黑
巴扎黑 2017-05-19 10:34:09
0
5
828

JSON文件代码如下:

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

script代码如下:

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

目前的问题是:
$.each()函数里的data.recommendation貌似不能这么用(?),alert显示“内部服务器错误”,错误代码是500,4。
尝试着改成data并把后面的item.food ,item.price改成item.name,item.average能正常获取json(json路径没错)。那如果我想获取recommendation里的food和price该怎么改代码呢?

巴扎黑
巴扎黑

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

(其实我觉得把post那行删了应该就没问题了,这么写其实就是省字)

为情所困

你上面的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);
       })
淡淡烟草味

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

给我你的怀抱

500 是服务器端出错了

阿神

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!