0

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

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

3 回答 3

4

如果这是文字 JavaScript,如下所示:

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

那么它应该没问题,你的错误一定来自其他地方。

如果它是您将其视为 JSON 的字符串,如下所示:

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

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

于 2013-03-23T21:04:00.590 回答
1

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

于 2013-03-23T21:05:43.917 回答
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]]"
于 2013-03-23T21:40:03.280 回答