数组可以是顶级的JSON文本吗?

每个在这篇文章的辩论: json-conversion-in-javascript

是的,数组是合法的顶级JSON文本。

有三个定义JSON的标准文档: RFC 4627 , RFC 7159 (废弃RFC 4627)和ECMA-404 。 它们的区别在于它们允许的顶层元素,但都允许一个对象或数组作为顶层元素。

  • RFC 4627: 对象或数组。
    “JSON文本是序列化的对象或数组”。
  • RFC 7159: 任何JSON值。
    “JSON文本是一个序列化的值。”
  • ECMA-404: 任何JSON值。
    “JSON文本是由符合JSON值语法的Unicode代码点组成的一系列令牌。”

是的 ,但是由于JSON劫持 ,您应该考虑在某些情况下将根设为对象。 这是基于重写JavaScript中的数组构造函数的信息泄露漏洞。

这是来自ECMAScript规范。

 JSON文本:
     JSONValue

 JSON值:
     JSONNullLiteral 
     JSONBooleanLiteral 
    的JSONObject 
     JSONArray 
     JSONString 
     JSONNumber

是的,在这里试试看。

http://www.jsonlint.com/

并放入[{}]

在其他意见中有一些混淆。 根据JSON RFC ,“application / json”媒体types只允许JSON文本顶层的对象或数组。 但是,对于parsing器,任何JSON值都可以接受,如ECMAScript规范中所示。