布尔值在JSON中是否有效?

32

2
你有这个“无效”的JSON的例子吗?指出一些工具并说哪些有效或无效是毫无意义的,除非你能展示它们所谓的“不好”。 - Marc B
1
{ "booleanExample": true } 被正确验证。 - beauchette
更新原始帖子 - user1491636
1个回答

59

根据RFC 4627的规定,JSON字符串的根必须是数组或对象。您链接到的验证器将仅包含true的JSON字符串视为无效:

JSON文本是一个序列化的对象或数组。

 JSON-text = object / array
根据该RFC标准,像true"foo"42这样的非包装值都不是JSON。其他可以验证的RFC,如RFC 7159RFC 8259,认为上述示例是有效的,因为它不限制JSON文本为对象或数组,而是允许值:

JSON值必须是对象、数组、数字或字符串,或以下三个文字名称之一:

 false null true
因为 RFC 4627 已经被 RFC 7159 和 RFC 8259 所替代,所以 true 是一个有效的 JSON 字符串。

3
今天的快速更新:最新的RFC(https://datatracker.ietf.org/doc/html/rfc8259#section-3)将`true`定义为有效的JSON。 - merlosy
@merlosy 还是无法通过node.js解析"true"。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接