Javascript 如何创建嵌套的json数据?
我有一个带有json数据的休假列表表Javascript 如何创建嵌套的json数据?,javascript,jquery,json,Javascript,Jquery,Json,我有一个带有json数据的休假列表表 var app=angular.module('myApp',[]) app.controller('myController', ['$scope', '$http', function ($scope, $http) { $scope.init = function () { $scope.holidayList=[ { 'month':'JAN', 'd
var app=angular.module('myApp',[])
app.controller('myController', ['$scope', '$http', function ($scope, $http) {
$scope.init = function () {
$scope.holidayList=[
{
'month':'JAN',
'date':01,
'day': 'Mon',
'occasion':'New Year'
},
{
'month':'FEB',
'date': 03,
'day': 'Fri',
'occasion':'Maha Shivaratri'
}
];
}
}])
在这里,我需要在一个月内显示多个假期,为此我更改了json,如下所示
$scope.holidayList=[
{
'month':'JAN',
'date':[01,07,20],
'day': ['Mon','Fri','Sun'],
'occasion':['New Year','pongal','bhogi']
},
{
'month':'FEB',
'date': 03,
'day': 'Fri',
'occasion':'Maha Shivaratri'
}
];
是否正确?是的,它正确且格式良好。我建议您使用以下格式,这样会更方便
[{
'month': 'JAN',
'Leaves': [{
'date': '2017-11-05T08:22:06.750Z',
'day': 'Mon',
'occassion': 'some_occasion'
},{
'date': '2017-11-05T08:22:06.750Z',
'day': 'Mon',
'occasion': 'some_occasion'
}
]
},{
'month': 'FEB',
'Leaves': [{
'date': '2017-11-05T08:22:06.750Z',
'day': 'Mon',
'occasion': 'some_occasion'
}, {
'date': '2017-11-05T08:22:06.750Z',
'day': 'Mon',
'occasion': 'some_occasion'
}
}]
您还可以在日期字段中使用时间戳,并编写一个过滤器来分隔日期和日期,在这种情况下,时间戳始终是推荐的 你的方法是正确的 <>但是考虑到模型必须独立于实现,并且是保持它干净和易于阅读的良好实践。 以下是我的建议: 1) 不要将模型直接添加到范围中。给它自己的变量,这样你可以更容易地引用它 2) 不要将日期拆分为日/月。即使它们是递归事件,您也可以将年份添加到现有的固定日期中以查找星期几。您可以在以后设置日期的显示格式:
'd'
:月份中的天(1-31)
'EEE'
:一周中的一天(太阳周六)
3) 避免并行数组会使代码复杂化,如:
'date':[01, 07, 20],
'day': ['Mon','Fri','Sun']
4) 不要在类似模型的级别中包含演示说明。视图负责将数据组织到各个级别
我的做法如下:
var holidayList=[
{
date: ['01-01-2016', '02-01-2016'],
event: 'New Year'
},
date: ['13-01-2016', '14-01-2016'],
month: 'Bhogi'
},
{
date: ['14-01-2016', '17-01-2016'],
event: 'Thai Pongal'
},
{
date: ['13-02-2016', '14-02-2016'],
event: 'Maha Shivaratri'
}
];
$scope.holidayList = holidayList;
这是正确的,但在我看来,它也很难正确显示。我想这样使用:
[{'JAN':[{'date':'01',…},{'date':'07',…}]}]
@peetya无需指定月份
?是的,但我无法在html中获取此数据。这就是为什么会询问它是否正确。您将使用索引表示法访问嵌套数据,例如{list.day[0]}