44

您是否考虑 JSON 网络响应:

"A serialization error occurred"

是否有效?

一些验证者接受它,而另一些则不接受。

4

5 回答 5

36

至于新的JSON RFC, json,仅包含单个值是非常有效的。

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

于 2014-07-17T13:32:34.703 回答
29

在RFC4627RFC7159之间对此有所改变:

RFC4627

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

  JSON-text = object / array

RFC7159

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

  JSON-text = ws value ws

没有为这种改变心意提供哲学或实践的理由。较早的版本可能更有意义,因为它始终规定同时包含单个列表元素和单个映射元素(一对或元组)。第二个版本只允许不包含单个列表元素。

于 2014-08-20T23:01:14.413 回答
17

According to the grammar exposed in http://www.json.org/ (which references the Standard ECMA-262 3rd Edition - December 1999 par.5.1.5 The JSON Grammar) it's wrong:

The initial element must be:

enter image description here

enter image description here

and then a value can be a string:

enter image description here

于 2012-11-10T02:11:15.213 回答
1

来自RFC4627

A JSON text is a serialized object or array.
    JSON-text = object / array

IE,根元素必须是对象或数组,不能单独为字符串值。

于 2012-11-10T02:00:50.673 回答
-3

我不在乎某个验证者是否接受它。这是错的。这是一个良好实践的问题,Json 格式必须是{"key": "value", .....}. 如果您认为该文本 Json 可以工作,但对于其他程序员来说,这不是一个严肃的 Json。如果您只使用该文本,那么您不需要 Json。

于 2012-11-10T01:46:42.573 回答