代码之家  ›  专栏  ›  技术社区  ›  Dustin Getz sunsations

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

  •  82
  • Dustin Getz sunsations  · 技术社区  · 14 年前

    根据本帖的辩论: json-conversion-in-javascript

    5 回复  |  直到 8 年前
        1
  •  98
  •   jpoh    8 年前

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

    定义JSON的标准文档有三个: RFC 4627 , RFC 7159 (废除了RFC 4627),以及 ECMA-404 . 它们不同于它们允许的顶级元素,但都允许对象或数组作为顶级元素。

    • RFC 4627: 对象或数组。
      “JSON文本是序列化对象或数组。”
    • RFC 7159: 任何JSON值。
      “JSON文本是序列化值。”
    • ECMA-404: 任何JSON值。
      “JSON文本是由符合JSON值的Unicode代码点组成的令牌序列。 语法。”
        2
  •  45
  •   Matthew Flaschen    14 年前

    是的 ,但是在某些情况下,您应该考虑将根目录设置为对象,因为 JSON hijacking . 这是一个基于重写javascript中数组构造函数的信息泄漏漏洞。

        3
  •  4
  •   ChaosPandion    14 年前

    这来自ECMAScript规范。

    JSONText :
        JSONValue
    
    JSONValue :
        JSONNullLiteral 
        JSONBooleanLiteral 
        JSONObject 
        JSONArray 
        JSONString 
        JSONNumber
    
        4
  •  1
  •   hvgotcodes    14 年前

    是的,在这里试试。

    http://www.jsonlint.com/

    然后放进[]

        5
  •  1
  •   cdunn2001    12 年前

    其他评论中也有一些困惑。“application/json”媒体类型只允许顶级的对象或数组用于json文本,根据 JSON RFC . 但是,对于解析器来说,任何JSON值都是可以接受的,如ECMAScript规范中所示。

    推荐文章