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格式指定字符串时,您需要:
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)