您是否考虑 JSON 网络响应:
"A serialization error occurred"
是否有效?
一些验证者接受它,而另一些则不接受。
至于新的JSON RFC, json,仅包含单个值是非常有效的。
JSON 文本是一个序列化的值。请注意,某些先前的 JSON 规范将 JSON 文本限制为对象或数组。
RFC4627:
JSON 文本是一个序列化的对象或数组。
JSON-text = object / array
RFC7159:
JSON 文本是一个序列化的值。请注意,某些先前
的 JSON 规范将 JSON 文本限制为对象或
数组。仅生成需要
JSON 文本的对象或数组的实现将是可互操作的,因为所有
实现都将接受这些作为符合标准的 JSON 文本。JSON-text = ws value ws
没有为这种改变心意提供哲学或实践的理由。较早的版本可能更有意义,因为它始终规定同时包含单个列表元素和单个映射元素(一对或元组)。第二个版本只允许不包含单个列表元素。
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:
and then a value can be a string:
来自RFC4627:
A JSON text is a serialized object or array. JSON-text = object / array
IE,根元素必须是对象或数组,不能单独为字符串值。
我不在乎某个验证者是否接受它。这是错的。这是一个良好实践的问题,Json 格式必须是{"key": "value", .....}
. 如果您认为该文本 Json 可以工作,但对于其他程序员来说,这不是一个严肃的 Json。如果您只使用该文本,那么您不需要 Json。