![](/img/trans.png)
[英]Error: (SystemJS) Unexpected token < SyntaxError: Unexpected token < at eval (<anonymous>) Angular 2
[英]Eval() = Unexpected token : error
我嘗試了這個簡單的 JavaScript 代碼:
eval('{"Topics":["toto","tata","titi"]}')
例如,在 Chrome 控制台中,這將返回
語法錯誤:意外標記:
我在JSONLint上嘗試了 JSON,它是有效的。
你看到錯誤了嗎?
你必須這樣寫
eval('('+stringJson+')' );
將字符串轉換為對象
希望我有所幫助!
因為eval
不強制表達式上下文,並且提供的字符串是無效的JavaScript 程序,因此前三個標記(以及它們的查看方式)是:
{ // <-- beginning of a block, and NOT an Object literal
"Topics" // <-- string value, okay (note this is NOT a label)
: // <-- huh? expecting ";" or "}" or an operator, etc.
快樂編碼。
FWIW,請改用JSON.parse
。 比eval
更安全。
第一:不要使用 eval。
第二。 只使用 eval 來制作一些東西,很好被評估。 例如:
eval('var topics = {"Topics":["toto","tata","titi"]}');
用:
function evalJson(jsArray){ eval("function x(){ return "+ jsArray +"; }"); return x(); }
var yourJson =evalJson('{"Topics":["toto","tata","titi"]}');
console.log(yourJson.Topics[1]); // print 'tata''
因為那是在評估一個對象。 eval() 要求您傳入語法上有效的javascript,而您所做的只是傳入一個裸對象。 調用應該更像是:
eval('var x = {"Topics":etc...}');
如果您使用 JQuery 使用函數$.parseJSON()
,為我工作,有同樣的問題
如果你想制作一個數組,請使用下面的代碼
var jsonObject = eval('(' +"["+ response + "]"+')');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.