单个字符串值是否被认为是有效的JSON?

Syl*_*ers 32 json

您是否考虑过JSON Web响应:

"A serialization error occurred"
Run Code Online (Sandbox Code Playgroud)

是否有效?

一些验证者接受它,而其他人则不接受.

igo*_*gor 31

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

JSON文本是序列化值.请注意,某些先前的JSON规范将JSON文本约束为对象或数组.


Bas*_*ani 23

RFC4627RFC7159之间有一个变化:

RFC4627:

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

  JSON-text = object / array
Run Code Online (Sandbox Code Playgroud)

RFC7159:

JSON文本是序列化值.请注意,某些先前
的JSON规范将JSON文本约束为对象或
数组.只生成
调用JSON文本的对象或数组的实现将是可互操作的,因为所有
实现都将接受这些作为符合JSON文本.

  JSON-text = ws value ws
Run Code Online (Sandbox Code Playgroud)

对于这种改变,没有提供哲学或实际的理由.早期版本可能更有意义,因为它始终要求包含单个列表元素和单个地图元素(对或元组).第二个版本只允许包含一个列表元素.


Ton*_*Rad 15

根据http://www.json.org/(参考标准ECMA-262第3版 - 1999年12月 par.5.1.5 JSON语法)中公开的语法,这是错误的:

最初的元素必须是:

在此输入图像描述

在此输入图像描述

然后一个值可以是一个字符串:

在此输入图像描述


ita*_*aka -4

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

  • 考虑 JSON API 的情况,这是一种非常常见的情况。当返回 404 或其他错误时,在您的世界中应该如何对值进行编码?我还建议“serious Json”(你的意思肯定是“serious JSON”?)是 JSON 规范所定义的内容。对于互联网和 RFC-7159 (https://tools.ietf.org/html/rfc7159) 的内容类型 application/json,它允许纯字符串,特别是:“JSON-text = ws value ws [. ..] JSON 值必须是对象、数组、数字或字符串,或者以下三个文字名称之一: false null tr​​ue”。 (3认同)