nodejs REPL不处理JSON.parse()?

时间:2018-09-03 02:40:02

标签: javascript node.js read-eval-print-loop

我正在尝试使用REPL的节点,从字符串解析失败,如下所示:

$node
> var str="{'a':1,'b':2}"
undefined
> var js=JSON.parse(str)
SyntaxError: Unexpected token ' in JSON at position 1

但是反向解析似乎还可以:

> var json = {a : ' 1 ',b : ' 2'};
undefined
> var str = JSON.stringify(json);
undefined
> str
'{"a":" 1 ","b":" 2"}'

我在哪里弄错了?

1 个答案:

答案 0 :(得分:3)

您的JSON中存在语法错误:

{'a':1,'b':2}
 ^
 |
 '--- invalid syntax. Illegal character (')

JSON与Javascript对象文字不一样。 JSON是一种文件/数据格式,与对象文字语法兼容,但更为严格。 JSON格式由Douglas Crockford指定,并记录在http://json.org/

JSON和对象文字之间的一些区别:

  • 属性名称是字符串
  • 字符串以双引号(“)开头和结尾
  • 不支持十六进制数字(例如0x1234)