为什么JSON.parse('{“key”:“value”}')做得不错,但JSON.parse('{key:“value”}“)不?
从节点REPL:
> JSON.parse('{"key" : "value"}') { key: 'value' } > JSON.parse('{key : "value"}') SyntaxError: Unexpected token ILLEGAL at Object.parse (native) at [object Context]:1:6 at Interface.<anonymous> (repl.js:171:22) at Interface.emit (events.js:64:17) at Interface._onLine (readline.js:153:10) at Interface._line (readline.js:408:8) at Interface._ttyWrite (readline.js:585:14) at ReadStream.<anonymous> (readline.js:73:12) at ReadStream.emit (events.js:81:20) at ReadStream._emitKey (tty_posix.js:307:10)
JSON中的所有键都是string,所有string都用双引号分隔。
JavaScript允许你使用不同的字符来分隔string,它允许你在对象字面量中使用标识符作为键 – 但是JSON不是JavaScript。
JSON期望键和值都是string。
因为你的第二个例子不是JSON。