JSON - 新日期的解析错误(...)

时间:2013-03-23 21:01:28

标签: javascript json

为什么这个JSON会给我解析错误?我可以发誓我已经做过这一百次而没有问题。

[[0,0,0,new Date(1364068990245)],[0,0,0,new Date(1364068940075)]]

3 个答案:

答案 0 :(得分:4)

如果是文字JavaScript,就像这样:

var myArray = [[0,0,0.......]];

然后它应该没问题,你的错误必须来自其他地方。

如果它是一个你被视为JSON的字符串,如下所示:

var myArray = JSON.parse("[[0,0,0.........]]");

然后你不能拥有new Date(或者实际上任何函数调用),它应该只是一个数字,然后你可以解析成一个日期。

答案 1 :(得分:1)

因为new运算符不是JSON的一部分。您的示例是JavaScript文件的有效片段,但在解析为JSON时它会正确导致错误。日期应序列化为字符串(理想情况下,作为ISO-8601字符串,Date构造函数将接受,但我认为数字也是可以容忍的。)

答案 2 :(得分:1)

这不是JSON,JSON格式中没有日期。

参考:http://www.json.org/

一些JSON解析器使用这种表示日期的方式扩展了标准:

"[[0,0,0,/Date(1364068990245)/],[0,0,0,/Date(1364068940075)/]]"

如果您使用的解析器不支持,则必须将它们作为不同的数据类型(例如数字)传输,然后在解析JSON后将它们转换为日期:

"[[0,0,0,1364068990245],[0,0,0,1364068940075]]"