在json文件中定义日期

Raj*_*l 웃 11 javascript json date

我想知道如何在json文件中设置今天的日期,就像我们在js中使用的一样.

有没有选项在json文件中指定Date.today()?

因为,每当我们读取json文件时,json数据都有date对象,它指定系统日期.

希望,你会明白我想说的.

提前致谢,

-Raja.

小智 11

服务器端可以生成ISO格式的JSON日期,例如"2012-04-30T02:15:12.356Z"然后客户端可以解析并加载到日期对象

new Date(Date.parse("2012-04-30T02:15:12.356Z"))
Run Code Online (Sandbox Code Playgroud)


Jos*_*eph 9

JSON是一种结构化传输格式.它没有逻辑.

但这里有选项:

  1. 为什么不在阅读文件时获取日期呢?

  2. 让服务器生成包含生成日期的JSON.但是,如果您想要当前日期,这并不理想.当您读取文件时,服务器生成的日期已经过去.

  3. 构建一个解析器,解析一个字符串并使其搜索自定义标记.

例如,特殊标记包含在@{}.获取命令,确定命令并执行替换.

var jsonString = '{"data1" : "foo","date" : "@{currentdate}"}'
Run Code Online (Sandbox Code Playgroud)

在这种情况下,我会发现@{currentdate}.我应该创建一个与此命令对应的函数,以@{currentdate}在读取期间替换为当前日期(以您想要的格式)

var parsedString = jsonString.replace(/@\{(\w+)\}/g, function(match, group) {    
    if (group === 'currentdate') {
        return new Date();
    } 
    else if (group === 'anotherCommand') {
        return 'anotherValue';
    } //and so on
});
Run Code Online (Sandbox Code Playgroud)

结果是这样的:

jsonString = '{"data1" : "foo","date" : "Fri May 04 2012 01:17:07 GMT-0700 (PDT)"}'
Run Code Online (Sandbox Code Playgroud)


Sea*_*key 5

我建议您考虑使用JSON-js(json2.js)解析器,因为它解析所有标准JSON,但也允许您添加自定义解析处理逻辑,称为reviver函数,非常适合您的场景.使用自定义处理程序调用JSON解析器的基本语法如下所示:

var myObject = JSON.parse(myJSONtext, reviverFunction);

使用您的示例输入作为指南,它可以设置为这样工作:

var jsonTxt = '[{' +
        '"data1": "foo",' +
        '"Date":  "",' +
        '"childs": [{' +
            '"data2": "stack",' +
            '"Date": ""' +
        '}{}{}...]}]';    //and-on-and-on as in your comment

myData = JSON.parse(jsonTxt, function ( key, value ) {
    if ( key === 'Date') { return new Date(); }
    //any additonal custom logic you may need later...
});
Run Code Online (Sandbox Code Playgroud)

JSON在JavaScript页面中提供了对JSON-js的一般性介绍,以及一些关于JSON的简要介绍信息,该页面还包括一​​些使用场景.