2016-09-06 137 views
4

为什么一些JSON验证程序将布尔值标记为无效的JSON,其他人有效?也就是,只需要truefalse值(无对象)。布尔值是否有效JSON

有效:

无效:

+1

得到了这个“无效”JSON的例子?指出一些工具并说出哪些工作/哪些工作不工作是毫无意义的,除非你能证明他们所谓的“坏”。 –

+1

{“booleanExample”:true}被验证,因为它应该。 – moo

+0

更新的原始文章 – user1491636

回答

11

链接到验证JSON字符串现有的单纯true根据RFC 4627为无效,这决定了一个JSON字符串的根是是一个数组或对象的验证:

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

JSON-text = object/array 

展开的值如true"foo"42不是JSON 根据该RFC

其他RFC它可以验证对,RFC 7159,认为上述实施例有效,因为它不约束一个JSON文本对象或数组,也可以让

甲JSON值必须是一个对象,数组编号,或串,或一个 以下三个文字名称:

false null true 

而且因为前者(RFC 4627)已经过时d(RFC 7159),true有效的JSON字符串。

+0

感谢您的全面!真棒。 – rinogo