nodejs REPL不处理JSON.parse()?

问题描述 投票:-1回答:1

我正在尝试使用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"}'

我哪里弄错了?

javascript node.js read-eval-print-loop
1个回答
3
投票

您的JSON中存在语法错误:

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

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

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

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

等等

© www.soinside.com 2019 - 2024. All rights reserved.