根据这篇文章的辩论:json-conversion-in-javascript
答案 0 :(得分:101)
是的,数组是合法的顶级JSON文本。
定义JSON有三个标准文档:RFC 4627,RFC 7159(废弃RFC 4627)和ECMA-404。它们允许的顶级元素不同,但都允许将对象或数组作为顶级元素。
答案 1 :(得分:47)
是,但由于JSON hijacking,您应该考虑在某些情况下将根目标设为对象。这是一个基于覆盖JavaScript中的数组构造函数的信息泄露漏洞。
答案 2 :(得分:4)
这来自ECMAScript规范。
JSONText : JSONValue JSONValue : JSONNullLiteral JSONBooleanLiteral JSONObject JSONArray JSONString JSONNumber
答案 3 :(得分:1)
并输入[{}]
答案 4 :(得分:1)
在其他评论中看到了一些混乱。每个JSON RFC,“application / json”媒体类型只允许顶层的对象或数组用于JSON文本。但是,对于解析器,任何JSON值都是可接受的,如ECMAScript规范中所示。