我尝试开发一个小小的网络日历。用户可以获得一周的概述,如果他在下周推送我,那么接下来的7天应该与jQuery异步加载。 JSON数据看起来像:
{
"user":[
{
"id":"12345",
"days":{
"09-07-2012":{
"10:00":{
"time":"10:00",
"length":"30",
"appointmentid":"159487"
},
"11:00":{
"time":"11:00",
"length":"30",
"appointmentid":"159487"
},
"12:00":{
"time":"12:00",
"length":"30",
"appointmentid":"159487"
}
},
"10-07-2012":{
"10:00":{
"time":"10:00",
"length":"30",
"appointmentid":"159487"
},
"11:00":{
"time":"11:00",
"length":"30",
"appointmentid":"159487"
},
"12:00":{
"time":"12:00",
"length":"30",
"appointmentid":"159487"
}
},
"11-07-2012":{
"10:00":{
"time":"10:00",
"length":"30",
"appointmentid":"159487"
},
"11:00":{
"time":"11:00",
"length":"30",
"appointmentid":"159487"
},
"12:00":{
"time":"12:00",
"length":"30",
"appointmentid":"159487"
}
}
}
}
]
}
我如何处理这些数据并将其显示在html表中?使用jQuery函数,我只能走第二维...所以我只能得到id和天......
$.each(data.user, function(i,data){
...
}
那么我怎么能走完整个阵列并用数据填充我的ui?我应该使用嵌套的每个函数吗?
电贺 托马斯
答案 0 :(得分:2)
一旦解析完毕,你可以简单地在属性中走路,因为你拥有的是一个javascript对象。
在这种特定情况下,您在地图中有地图。
要迭代此类对象的属性,请使用for (var key in object)
构造:
您的用户ID为data.user.id
for (var date in data.user.days) {
var day = data.user.days[date];
for (var hour in day) {
var appointement = day[hour];
// use the hour and appointement objects and their properties.
我不知道这个对象的大小是否符合“大”的要求,但在迭代几MB的对象时没有问题(除了下载持续时间)。