【发布时间】:2011-04-19 11:57:13
【问题描述】:
根据这篇文章中的辩论:json-conversion-in-javascript
【问题讨论】:
根据这篇文章中的辩论:json-conversion-in-javascript
【问题讨论】:
是的,数组作为顶级 JSON 文本是合法的。
定义 JSON 的标准文档有四个:RFC 4627、RFC 7159(已废弃 RFC 4627)、ECMA-404 和 RFC 8259(已废弃 RFC 7159,并调用 ECMA-404 规范)。它们在允许的顶级元素上有所不同,但都允许将对象或数组作为顶级元素。
【讨论】:
是的,但由于JSON hijacking,您应该考虑在某些情况下将根设为对象。这是一个基于在JavaScript中重写数组构造函数的信息泄露漏洞。
【讨论】:
这是来自 ECMAScript 规范。
JSON文本: JSON值 JSON值: JSONNullLiteral JSONBooleanLiteral JSON对象 JSON数组 JSON字符串 JSON数字【讨论】:
是的,你可以做到。输入[{}]
【讨论】:
[],它将验证。
在其他 cmets 中可以看到一些混乱。根据JSON RFC,“application/json”媒体类型仅允许 JSON 文本的顶层对象或数组。但是,对于解析器,任何 JSON 值都是可接受的,如 ECMAScript 规范中所见。
更新:RFC 4627 已过时。新的 RFC 也允许顶层的简单值。 (谢谢, Matthias Dieter Wallnöfer。)
【讨论】: