Zum Hauptinhalt springen

4. Objects (Objekte)

Eine Objektstruktur wird als ein Paar geschweifte Klammern dargestellt, die null oder mehr Name/Wert-Paare (oder Mitglieder) umgeben. Ein Name ist eine Zeichenkette. Nach jedem Namen folgt ein Doppelpunkt, der den Namen vom Wert trennt. Ein einzelnes Komma trennt einen Wert von einem folgenden Namen. Die Namen innerhalb eines Objekts sollten (SHOULD) eindeutig sein.

object = begin-object [ member *( value-separator member ) ]
end-object

member = string name-separator value

Ein Objekt, dessen Namen alle eindeutig sind, ist in dem Sinne interoperabel, dass alle Softwareimplementierungen, die dieses Objekt empfangen, sich über die Name-Wert-Zuordnungen einig sein werden. Wenn die Namen innerhalb eines Objekts nicht eindeutig sind, ist das Verhalten von Software, die ein solches Objekt empfängt, unvorhersehbar. Viele Implementierungen melden nur das letzte Name/Wert-Paar. Andere Implementierungen melden einen Fehler oder können das Objekt nicht analysieren, und einige Implementierungen melden alle Name/Wert-Paare, einschließlich Duplikate.

Es wurde beobachtet, dass sich JSON-Parsing-Bibliotheken darin unterscheiden, ob sie die Reihenfolge der Objektmitglieder für die aufrufende Software sichtbar machen oder nicht. Implementierungen, deren Verhalten nicht von der Mitgliederreihenfolge abhängt, sind in dem Sinne interoperabel, dass sie von diesen Unterschieden nicht betroffen sind.