簡體   English   中英

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

[英]JSON Parse: Uncaught SyntaxError: Unexpected token e

我試圖解析一個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()解析的字符串?

您需要使用有效的JSON數據類型替換new Date(2016, 2, 11) 2016,2,11)的每個實例。

例如,您可以使用包含ISO 8601數據的字符串或表示自紀元以來的秒數的數字來表示日期。

我用以下方法解決了這個問題:

eval( "data = " + str );

在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的對象數組,以允許您訪問數組中每個對象的日期和數量。 您應該將這些稱為對您的需求更有意義的東西。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM