为什么JSON.parse(“string”)失败

时间:2013-08-07 06:25:19

标签: json

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

enter image description here

那么为什么会这样呢?

3 个答案:

答案 0 :(得分:10)

您实际上正在将单词string传递给函数,该函数当然是无效的JSON。要实际传入 "string,您需要小心JavaScript。

试试这个:

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

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

答案 1 :(得分:1)

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

string
  ""
  " chars "

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

答案 2 :(得分:0)

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

此通话有效:

JSON.parse('"s"')