Frage

pro Debatte in diesem Beitrag: json-Umwandlung-in-javascript

War es hilfreich?

Lösung

Ja, ein Array ist legal als Top-Level-JSON-Text.

Es gibt drei Standarddokumente JSON definieren: RFC 4627 , RFC 7159 (die RFC 4627 obsolete) und ECMA-404 . Sie unterscheiden sich in dem Top-Level-Elemente, die sie ermöglichen, aber alle ermöglichen, ein Objekt oder ein Array als Element der obersten Ebene.

  • RFC 4627:. Objekt oder Array
    "Ein JSON Text ist ein serialisierte Objekt oder Array"
  • RFC 7159:. All JSON-Wert
    "Ein JSON Text ist ein serialisierte Wert"
  • ECMA-404: All JSON-Wert
    "Ein JSON Text ist eine Folge von Token von Unicode-Codepunkten gebildet, dass entspricht den JSON-Wert. Grammatik ".

Andere Tipps

Ja , aber Sie sollten ein Objekt stattdessen in einigen Szenarien aufgrund JSON-Hijacking . Dies ist eine Verwundbarkeit der Offenlegung von Informationen basierend auf Überschreiben den Array-Konstruktor in JavaScript.

Dies ist aus der ECMAScript-Spezifikation.

JSONText :
    JSONValue

JSONValue :
    JSONNullLiteral 
    JSONBooleanLiteral 
    JSONObject 
    JSONArray 
    JSONString 
    JSONNumber

ja, versuchen Sie es hier.

http://www.jsonlint.com/

und setzte in [{}]

Es gibt einige Verwirrung in den anderen Kommentaren gesehen. Die "application / json" Medientyp erlaubt nur Objekt oder Array auf der obersten Ebene für JSON-Text, per JSON RFC . Jedoch für einen Parser jeden JSON Wert akzeptabel ist, wie in der Spezifikation ECMAScript gesehen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top