Javascript 为什么JSON.parse(“foo”)失败,而JSON.parse(“foo”)成功?

Javascript 为什么JSON.parse(“foo”)失败,而JSON.parse(“foo”)成功?,javascript,json,parsing,Javascript,Json,Parsing,当我尝试JSON.parse(“foo”)时,我得到一个错误: Uncaught SyntaxError: Unexpected token o in JSON at position 1 at JSON.parse (<anonymous>) at <anonymous>:1:6 之所以会出现这种情况,是因为JSON.parse()通过在Javascript中使用to声明值来格式化给定的字符串,从而返回一个值。因此,使用foounked就像抛出一个未定

当我尝试
JSON.parse(“foo”)
时,我得到一个错误:

Uncaught SyntaxError: Unexpected token o in JSON at position 1
    at JSON.parse (<anonymous>)
    at <anonymous>:1:6

之所以会出现这种情况,是因为
JSON.parse()
通过在Javascript中使用to声明值来格式化给定的字符串,从而返回一个值。因此,使用
foo
unked就像抛出一个未定义的变量


还要注意,该符号使用双引号
而不是单引号
。这就是为什么
JSON.parse(“'foo'))
有效,但
JSON.parse('foo'))
不会。

您可以在上找到使JSON有效的因素。JSON可以表示null、布尔值、数字、字符串、数组和对象。对于字符串,它们必须用双引号括起来

JSON本身是一种字符串格式,因此当您以JSON格式指定字符串时,您需要:

  • 引号告诉JavaScript您正在指定字符串文字。这些引号不是字符串值本身的一部分,它们只是分隔符
  • 在该字符串文本中使用双引号,以遵循字符串数据类型的JSON语法
  • 下面是一些关于
    JSON.parse的正确参数的示例:

    • JSON.parse(“true”)
    • JSON.parse(“false”)
    • JSON.parse(“null”)
    • JSON.parse(“42”)
    • JSON.parse(“[13]”)
    • JSON.parse('hello')
    • JSON.parse('{“name”:“Mary”}')
    但不是:

    • JSON.parse(“是”)
    • JSON.parse(“no”)
    • JSON.parse(“无”)
    • JSON.parse('hello')
    • JSON.parse({“name”:“Mary”})
    因为参数将被强制转换为字符串,而实际情况并非如此,所以下面的操作也会起作用,但会造成混乱(而且毫无用处):

    • JSON.parse(true)
    • JSON.parse(false)
    • JSON.parse(空)
    • JSON.parse(42)