一尘不染

这个简单的字符串是否被视为有效的JSON?

json

我已经在SO中看到了很多复杂的问题,无论某个复杂的结构是否被视为有效的JSON。

但是在频谱的另一端呢?

"12345"

以上是有效的JSON吗?


阅读 243

收藏
2020-07-27

共1个答案

一尘不染

是的,在大多数情况下。这是表示JSON值的有效JSON语法。

对此的困惑来自于Douglas Crockford的RFC
4627
,它最初application/json于2006年定义了互联网媒体类型。它说:

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

但是,正如Crockford在2013年的帖子中所解释的(不幸的是,其余的Google+删除了它):

JSON只是一种语法,该语法包括数字和字符串。JSON的使用必须具有更大的限制性。RFC-4627是一种可能的用法,并且从未打算成为JSON本身的标准。

示例字符串是有效的JSON值,但是将其用作application/jsonHTTP响应的完整“
JSON文本”正文可能是不正确的。但是,这不再是真的:RFC-4627在2014年随RFC
7159
的发布而废弃,它使您可以使用任何JSON值:

JSON文本是序列化的值。请注意,以前的某些JSON规范将JSON文本限制为对象或数组。

2013年还发布了“ JSON本身标准”,称为ECMA-404,并且在ECMAScript(JavaScript)规范ECMA-262的 5.1版中也定义了JSON
。这些规范和大多数解析器允许将任何JSON值作为完整的JSON文本,即使它只是一个简单的字符串也是如此。

2020-07-27