我从AJAX调用得到了这个数据响应:
{"18:00":{"twopersons":1,"fourpersons":0}}
由statsarray = data;
现在我如何循环显示statsarray并输出twopersons
值?
所以我可以提醒:
18:00 - There's 2 x 2persons and 0 x 4persons
这是Ajax调用:
var statsarray;
var currentloopeddate = test_date.toString('yyyy-MM-dd')
$.post("/home/sessions",
{ action: 'partner_calendar_checkseats', date: currentloopeddate },
function(data) { statsarray = data; }
);
答案 0 :(得分:2)
请执行以下操作:
var twopersons = data["18:00"].twopersons;
var fourpersons = data["18:00"]["fourpersons"];
(两种变体都是可能的)
变体是:
var shorter = data["18:00"];
var twopersons = data.twopersons;
// ...
答案 1 :(得分:1)
类似的东西:
var tst = {"18:00":{"twopersons":1,"fourpersons":0}};
for(k in tst) {
for(var z in tst[k]) {
console.log(k + ": Theres "+tst[k][z] + " X " + z);
}
}
答案 2 :(得分:0)
您可以尝试这样的事情:
(更新:更好的例子)
var statsarray = {"18:00":{"twopersons":1,"fourpersons":0}};
var hour, persons, line, array;
for (hour in statsarray) {
if (statsarray.hasOwnProperty(hour)) {
array = [];
for (persons in statsarray[hour]) {
if (statsarray[hour].hasOwnProperty(persons)) {
array.push(statsarray[hour][persons] + " x " + persons);
}
}
line = hour + " - There's " + array.join(' and ');
alert(line);
}
}
请参阅:DEMO。
不幸的是,您必须使用.hasOwnProperty
进行测试,以确保它可以与某些库一起使用。
更新:您已在问题中添加了AJAX调用中的代码,我注意到您在回调函数中声明了statsarray
变量 ,但是为回调中的变量内部分配一些值。请记住,你必须在AJAX回调函数中运行你的迭代代码 ,你有:statsarray = data;
- 就在这一行之后,确保你实际拥有一些值要迭代。