根据JSON 规范,字符串是合法的 JSON 值。
那么为什么会这样呢?
您实际上是将裸词传递string
给当然不是有效 JSON 的函数。要真正传入值 "string
" 你需要小心你的 JavaScript。
尝试这个:
JSON.parse("\"string\"")
额外的一对引号必须被转义,以便它们成为您传递给函数的值的一部分。
语法错误告诉您:“s”是一个意外的标记。字符串是一个有效的 JSON 值,但正如规范所描述的,它必须用双引号引起来。
string
""
" chars "
通常,您可以使用JSON.stringify(myValue)
该值来检查格式正确的 JSON 字符串是什么。
因为 JSON 中的字符串必须用引号括起来,并且在您的 JSON.parse("string")
调用中,JSON.parse
永远不会“看到”任何引号作为要求解析的文本的一部分。我们看到的双引号被用来形成一个合法的字符串来传递——它们不是我们传递的文本的一部分。
此调用有效:
JSON.parse('"s"')