我正在尝试解析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()
解析?
答案 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的对象数组,以允许您访问数组中每个对象的日期和数量。你应该把这些东西称为更有意义的东西。