我有一个json文件,我试图使用以下jquery函数访问。
$.ajax({
type: 'GET',
url: '/data/coffee.json',
dataType:'json',
success: function(data) {
let widget = show(data);
$("#Meals").html(widget);
}
});
function show(data) {
let statusHtml = '<ul>';
$.each(data.prices, function(i, meal){
statusHtml += '<li> name: '+ meal.item + '</li>';
statusHtml += '<li> price: '+ meal.price + '</li>';
});
statusHtml += '</ul>';
return statusHtml;
}
我尝试访问的数据如下:
[
{
"shopName": "The Coffee Connection",
"address": "123 Lakeside Way",
"phone": "16503600708",
"prices": [
{
"item": "Cafe Latte",
"price": 4.75
},
{
"item": "Flat White",
"price": 4.75
},
{
"item": "Cappucino",
"price": 3.85
},
{
"item": "Single Espresso",
"price": 2.05
},
{
"item": "Double Espresso",
"price": 3.75
},
{
"item": "Americano",
"price": 3.75
}
]
}
]
我尝试过console.log(&#39;成功&#39;,数据);这将返回控制台中的价格数组。但由于某些原因,当我运行此代码时它并没有显示出来。任何帮助将不胜感激。
答案 0 :(得分:2)
data.prices
无效。
data
是一个数组,因此您需要data[0].prices
等。
首先遍历data
,该变量将具有price属性。
或者只是使用
function show(data) {
let statusHtml = '<ul>';
$.each(data[0].prices, function(i, meal){
statusHtml += '<li> name: '+ meal.item + '</li>';
statusHtml += '<li> price: '+ meal.price + '</li>';
});
statusHtml += '</ul>';
return statusHtml;
}
答案 1 :(得分:2)
数据是Array
,这应该有效:
$.each(data[0].prices, function(i, meal){
statusHtml += '<li> name: '+ meal.item + '</li>';
statusHtml += '<li> price: '+ meal.price + '</li>';
});