4

根据JSON 规范,字符串是合法的 JSON 值。

在此处输入图像描述

那么为什么会这样呢?

4

3 回答 3

11

您实际上是将裸词传递string给当然不是有效 JSON 的函数。要真正传入 "string" 你需要小心你的 JavaScript。

尝试这个:

JSON.parse("\"string\"")

额外的一对引号必须被转义,以便它们成为您传递给函数的值的一部分。

于 2013-08-07T06:28:50.857 回答
1

语法错误告诉您:“s”是一个意外的标记。字符串是一个有效的 JSON 值,但正如规范所描述的,它必须用双引号引起来。

string
  ""
  " chars "

通常,您可以使用JSON.stringify(myValue)该值来检查格式正确的 JSON 字符串是什么。

于 2013-08-07T06:30:40.033 回答
0

因为 JSON 中的字符串必须用引号括起来,并且在您的 JSON.parse("string")调用中,JSON.parse永远不会“看到”任何引号作为要求解析的文本的一部分。我们看到的双引号被用来形成一个合法的字符串来传递——它们不是我们传递的文本的一部分。

此调用有效:

JSON.parse('"s"')
于 2013-08-07T06:39:03.777 回答