JSON kann entweder ein Array oder ein Objekt sein. Speziell von json.org:
JSON basiert auf zwei Strukturen:
- Eine Sammlung von Name / Wert-Paaren. In verschiedenen Sprachen wird dies als Objekt, Datensatz, Struktur, Wörterbuch, Hash-Tabelle, Schlüsselliste oder assoziatives Array realisiert.
- Eine geordnete Liste von Werten. In den meisten Sprachen wird dies als
Array, Vektor, Liste oder Sequenz realisiert.
Anschließend werden die beiden Strukturen wie folgt beschrieben:
Beachten Sie, dass die Start- und Endzeichen geschweifte Klammern bzw. eckige Klammern sind.
Bearbeiten
Und von hier aus: http://www.ietf.org/rfc/rfc4627.txt
Ein JSON-Text ist eine Folge von Token. Der Satz von Token enthält sechs strukturelle Zeichen, Zeichenfolgen, Zahlen und drei Literalnamen.
Ein JSON-Text ist ein serialisiertes Objekt oder Array.
Update (2014)
Ab März 2014 gibt es einen neuen JSON-RFC ( 7159 ), der die Definition geringfügig ändert (siehe Seite 4/5).
Die Definition gemäß RFC 4627 lautete: JSON-text = object / array
Dies wurde in RFC 7159 geändert in: JSON-text = ws value ws
Wobei ws
Leerzeichen stehen und value
wie folgt definiert sind:
Ein JSON-Wert MUSS ein Objekt, ein Array, eine Zahl oder eine Zeichenfolge oder einer der folgenden drei Literalnamen sein:
false null true
Die Antwort auf die Frage lautet also immer noch Ja. JSON-Text kann mit einer eckigen Klammer (dh einem Array) beginnen. Aber zusätzlich zu Objekten und Arrays, kann es nun auch um eine Zahl, einen String oder die Werte false
, null
oder true
.
Dies hat sich auch gegenüber meinem vorherigen RFC 4627-Zitat geändert (Hervorhebung hinzugefügt):
Ein JSON-Text ist eine Folge von Token. Der Satz von Token enthält sechs strukturelle Zeichen, Zeichenfolgen, Zahlen und drei Literalnamen.
Ein JSON-Text ist ein serialisierter Wert . Beachten Sie, dass bestimmte frühere JSON-Spezifikationen einen JSON-Text als Objekt oder Array einschränkten. Implementierungen, die nur Objekte oder Arrays generieren, für die ein JSON-Text erforderlich ist, sind in dem Sinne interoperabel, dass alle Implementierungen diese als konforme JSON-Texte akzeptieren.
[]
, sie als Array zu analysieren und das erste Array-Element zu verwenden.)