如何创建嵌套的json数据?

时间:2017-11-05 08:18:27

标签: javascript jquery json

我有一个带有json数据的Leave List表。

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'
            }

        ];
}
}])

https://jsfiddle.net/856fysen/2/

这里我需要在一个月内显示多个叶子,因为我已经像这样改变了我的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'
            }

        ];

这是对的吗?

3 个答案:

答案 0 :(得分:1)

我建议你使用以下格式,它会更方便。

   [{
      '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 :(得分:1)

你的方法是核心。

但请注意,该模型必须独立于实现,并且是保持其清洁和易于阅读的良好实践。

以下是我的建议:

1)不要将模型直接添加到范围。给它自己的变量,以便你可以更容易地参考它。

2)不要将日期分成日期/月份。即使它们是递归事件,您也可以在现有的固定日期中添加年份以查找星期几。您可以稍后设置日期格式:How to format date in angularjs

'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;

The "right" JSON date format

答案 2 :(得分:0)

是的,它是正确的并且格式正确。