我有以下字段验证器对象:
{ type:'date', 'min':new Date() }
我希望我可以将new Date()
存储为JSON中的表达式,并在解析时执行它
答案 0 :(得分:2)
保存时间戳:
{ type:'date', 'min':(new Date()).getTime() }
阅读之后:
var result = JSON.parse('{ "type":"date", "min":1234567 }');
result.date = new Date(result.min);
答案 1 :(得分:2)
您无法将完整的Date对象存储在JSON字符串中。但您可以尝试存储代表他的文本:
作为字符串:
[{ "ID": 1, "text": "test"}]
作为时间戳:
{ type:'date', 'min':(new Date()).toString() }
作为ISO字符串:
{ type:'date', 'min':(new Date()).getTime() }
答案 2 :(得分:1)
JSON不支持Date数据类型(它只支持字符串 数, 宾语, 阵列, 真正, 虚假,和 空值)。您需要将其转换为字符串。
例如,ISO时间:
var json = JSON.stringify( { type:'date', 'min':new Date().toISOString() } );
document.body.appendChild(document.createTextNode(json));
答案 3 :(得分:0)
日期对象实际上有一个toJSON
方法,您可能会发现它很有用。但是我建议使用getTime
,因为它返回一个时间戳,通常更灵活。