我是否正确假设我必须在我的客户端代码中手动将Json编码的日期字符串转换为日期对象?
来自C#,我理所当然地认为这是自动发生的,但我想那是.NET。
是否有内置机制从Json字符串中获取本机javascript类型(对于日期,整数等)?
感谢。
答案 0 :(得分:5)
JSON规范未定义日期数据类型。这取决于你。
参见A.8节:http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-262.pdf
答案 1 :(得分:1)
JSON没有标准日期类型。有各种库(包括.NET)具有不兼容的扩展名来表示它。
答案 2 :(得分:1)
请参阅Stand-Alone JSON Serialization on msdn,其中提供了有关MS实施的文档
答案 3 :(得分:1)
如果您使用任何客户端库(如jQuery),您可以使用我的jQuery扩展,使用$.parseJSON()
自动将ISO日期和Asp.net日期转换为实际日期。
检查my blog post代码。
答案 4 :(得分:0)
JSON.parse()支持replacer param。
JSON.stringify(value[, replacer[, space]])
所以你可以在json中轻松处理日期类型。
function replacer(key, value) {
return key == "date1" || key == "date2" ? new Date(value) : value;
}
var obj = {
date1:"5/21/2012 4:49:17 PM",
date2:new Date()
}
var jsonString = JSON.stringify(obj);
console.log(jsonString);
var jsonObj = JSON.parse(jsonString, replacer);
console.log(jsonObj);