js解析JSON报错:SyntaxError: Unexpected token

来源:互联网 发布:米兰理工大学知乎 编辑:程序博客网 时间:2024/06/06 21:04

问题复现

> node> j = '{a:1,b:"2"}';> JSON.parse(j)SyntaxError: Unexpected token a    at Object.parse (native)    at repl:1:6    at REPLServer.defaultEval (repl.js:252:27)    at bound (domain.js:287:14)    at REPLServer.runBound [as eval] (domain.js:300:12)    at REPLServer.<anonymous> (repl.js:417:12)    at emitOne (events.js:82:20)    at REPLServer.emit (events.js:169:7)    at REPLServer.Interface._onLine (readline.js:210:10)    at REPLServer.Interface._line (readline.js:549:8)

问题原因

示例中的j不是标准的JSON字符串,键值都得带上引号。

问题解决

使用eval

try{    var json = JSON.parse(j);} catch(e) {    var json = eval("("+ j +")");}

参考资料

http://www.json.org/json-zh.html

阅读全文
0 0