JSON解析:未捕获的SyntaxError:意外的令牌e

时间:2016-03-11 14:15:57

标签: javascript json string parsing

我正在尝试解析JSON字符串。这是字符串的内容:

[[ new Date(2016, 2, 11), 439 ],[ new Date(2016, 2, 10), 1110 ],[ new Date(2016, 2, 9), 9 ],[ new Date(2016, 2, 8), 2 ]]

这是代码

var data = JSON.parse(str);

这是错误

  

未捕获的SyntaxError:意外的令牌e

如何准备此字符串以供JSON.parse()解析?

3 个答案:

答案 0 :(得分:0)

您需要使用有效的JSON数据类型替换new Date(2016, 2, 11)的每个实例。

您可以使用例如包含ISO 8601数据的字符串或表示自纪元以来的秒数的数字来表示日期。

答案 1 :(得分:0)

我通过使用:

解决了这个问题
eval( "data = " + str );

答案 2 :(得分:0)

在JavaScript中,构造它(http://www.w3schools.com/json/json_syntax.asp)...

// Bear in mind that month 2 = March in JavaScript!
var dte1 = new Date(2016, 2, 11);
var dte2 = new Date(2016, 2, 10);
var dte3 = new Date(2016, 2, 9);
var dte4 = new Date(2016, 2, 8);

var str = '[ ';
str += '{ "d": "' + dte1.toJSON() + '", "n": 439 }, ';
str += '{ "d": "' + dte2.toJSON() + '", "n": 1110 }, ';
str += '{ "d": "' + dte3.toJSON() + '", "n": 9 }, ';
str += '{ "d": "' + dte4.toJSON() + '", "n": 2 } ]';

var data = JSON.parse(str);

alert("Date: " + data[0].d);
alert("Amount: " + data[0].n);

我将它构造为具有属性d和n的对象数组,以允许您访问数组中每个对象的日期和数量。你应该把这些东西称为更有意义的东西。