为什么一些JSON验证器将布尔值标记为无效的JSON,而另一些则将其标记为有效的?也就是说,只有
有效: 无效:
true
或false
值(没有对象)。有效: 无效:
true
或false
值(没有对象)。根据RFC 4627的规定,JSON字符串的根必须是数组或对象。您链接到的验证器将仅包含true
的JSON字符串视为无效:
JSON文本是一个序列化的对象或数组。
JSON-text = object / array
根据该RFC标准,像true
、"foo"
或42
这样的非包装值都不是JSON。其他可以验证的RFC,如RFC 7159和RFC 8259,认为上述示例是有效的,因为它不限制JSON文本为对象或数组,而是允许值: JSON值必须是对象、数组、数字或字符串,或以下三个文字名称之一:
false null true
因为 RFC 4627 已经被 RFC 7159 和 RFC 8259 所替代,所以 true
是一个有效的 JSON 字符串。