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

时间:2012-11-10 01:43:01

标签: json

您是否考虑过JSON网络响应:

"A serialization error occurred"

是否有效?

Some validators accept it而其他人没有。

5 个答案:

答案 0 :(得分:28)

对于新的JSON RFC,json只包含单个值非常有效。

  

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

答案 1 :(得分:20)

RFC4627RFC7159之间的情绪发生了变化:

<强> RFC4627

  

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

  JSON-text = object / array

<强> RFC7159

  

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

  JSON-text = ws value ws

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

答案 2 :(得分:12)

根据http://www.json.org/(引用Standard ECMA-262 3rd Edition - December 1999 par.5.1.5 JSON语法)中暴露的语法,这是错误的:

初始元素必须是:

enter image description here

enter image description here

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

enter image description here

答案 3 :(得分:0)

来自RFC4627

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

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

答案 4 :(得分:-4)

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