我正在使用 NodeJS,下面的 JSON.parse 失败了,但我不知道为什么:
> s[0]
'[["hands[0].session.buyin", "332"]]'
> JSON.parse(s[0]);
SyntaxError: Unexpected token
at Object.parse (native)
at repl:1:6
at REPLServer.self.eval (repl.js:110:21)
at repl.js:249:20
at REPLServer.self.eval (repl.js:122:7)
at Interface.<anonymous> (repl.js:239:12)
at Interface.EventEmitter.emit (events.js:95:17)
at Interface._onLine (readline.js:202:10)
at Interface._line (readline.js:531:8)
at
相关字符串已从文件中加载。如果我将字符串复制到控制台中,它就可以工作,所以我怀疑这可能与文件的编码方式有关,但我无法弄清楚是什么。 JSON.parse 的错误消息显然没有帮助。
最佳答案
String
似乎包含一个 Byte-Order Mark .
> s[0].charCodeAt(0).toString(16)
'feff'
你必须 strip that在 JSON.parse()
可以管理其余部分之前输出。
> JSON.parse(s[0].trim())
[ [ 'hands[0].session.buyin', '332' ] ]
关于javascript - JSON.parse 无故失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18988349/