''“'是一个有效的JSON字符串吗?
我很困惑。 引用json.org
JSON建立在两个结构上:
所以,我不认为''''应该是一个有效的JSON字符串,因为它既不是一个列表值(即不以'['开始并以']'结尾),但JSON.parse不会给出异常并返回空字符串。
它是一个有效的JSON字符串。
所以,我不认为""
应该是一个有效的JSON字符串
它是一个有效的JSON字符串(这是一种可能出现在JSON文本中的数据类型)。
因为它既不是一个列表值(即不以'['开始并以']'结尾)
JSON 文本 (即完整的JSON文档)必须(在最外层)是对象或数组。 一个字符串不是有效的JSON文本。
正式的规范说:
JSON文本是一个序列化的对象或数组。
但回到这里引用这个问题:
但JSON.parse不会给出异常并返回空字符串。
您使用的JSON解析器过于自由。 不要以为所有的JSON解析器都会。
例如,如果我运行perl -MJSON -E'say decode_json(q{""})'
我得到:
在-e第1行,JSON文本必须是一个对象或数组(但找到数字,字符串,true,false或null,使用allow_nonref来允许)。
不, ''
不是有效的JSON。 JSON.parse('')
确实会引发错误 - 只需在浏览器控制台中查看即可。
下次你有一个“这是有效的JSON?” 问题,只需通过JSON验证程序运行即可。 这就是他们存在的原因。
遵循最新的JSON RFC 7159, ""
实际上是有效的JSON。 但在一些早期的标准中并不是这样。
引用:
JSON文本是一系列令牌。 这组令牌包括六个结构字符,字符串,数字和三个字面名称。
JSON文本是一个序列化的值。 请注意,某些先前的JSON规范将JSON文本约束为对象或数组。 只生成对象或数组的JSON文本被调用的实现将是可互操作的,因为所有实现都将接受这些JSON文本为符合条件的JSON文本。
链接地址: http://www.djcxy.com/p/37859.html