12

JSON 值是字符串、数字、真、假、空的有效 JSON 吗?即是

true

有效的 JSON 文档?还是必须是数组/对象?

一些验证器接受这一点(例如http://jsonlint.com/),而另一些则不接受(例如http://jsonschemalint.com/)。RFC 和 json.org 对此问题并不清楚。

4

2 回答 2

10

截至 2014 年 3 月:的。从规范

JSON 文本是一个序列化的值。请注意,某些先前的 JSON 规范将 JSON 文本限制为对象或数组。仅生成需要 JSON 文本的对象或数组的实现将是可互操作的,因为所有实现都将接受这些作为符合标准的 JSON 文本。

但是,在最初提出这个问题时,答案是:不。原始规范说

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

因此 JSON 文本中最外层的数据类型必须是对象或数组,不能是字符串、布尔值、数字或任何其他数据类型。

于 2013-03-04T16:23:41.990 回答
0

是的,根据 ECMA-404 JSON 数据交换标准。

资料来源: http: //www.ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf

JSON 文本是由符合 JSON 值语法的 Unicode 代码点形成的标记序列。

下面给出 JSON 值语法:

JSON 值可以是对象、数组、数字、字符串、true、false 或 null。

这与@quentin 引用的 RFC 直接冲突。更新后的 RFC 为 8259,其中指出:

请注意,某些先前的 JSON 规范将 JSON 文本限制为对象或数组。仅生成需要 JSON 文本的对象或数组的实现将是可互操作的,因为所有实现都将接受这些作为符合标准的 JSON 文本。

于 2019-02-10T03:25:30.180 回答