1. Introduction (Einführung)
JavaScript Object Notation (JSON) ist ein Textformat zur Serialisierung strukturierter Daten. Es leitet sich von Objektliteralen in JavaScript ab, wie im ECMAScript-Programmiersprachen-Standard, dritte Edition [ECMA-262], definiert.
JSON kann vier primitive Typen (Strings, Zahlen, Boolesche Werte und null) sowie zwei strukturierte Typen (Objekte und Arrays) darstellen.
Ein String ist eine Sequenz von null oder mehr Unicode-Zeichen [UNICODE]. Beachten Sie, dass dieser Verweis auf die neueste Version von Unicode verweist, nicht auf eine bestimmte Version. Es wird erwartet, dass zukünftige Änderungen an der Unicode-Spezifikation die Syntax von JSON nicht beeinflussen.
Ein Objekt ist eine ungeordnete Sammlung von null oder mehr Name/Wert-Paaren, wobei ein Name ein String ist und ein Wert ein String, eine Zahl, ein Boolescher Wert, null, ein Objekt oder ein Array sein kann.
Ein Array ist eine geordnete Sequenz von null oder mehr Werten.
Die Begriffe "Objekt" und "Array" stammen aus den Konventionen von JavaScript.
Die Designziele von JSON waren es, minimal, portabel, textbasiert und ein Subset von JavaScript zu sein.
1.1. Conventions Used in This Document (In diesem Dokument verwendete Konventionen)
Die Schlüsselwörter "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY" und "OPTIONAL" in diesem Dokument sind wie in [RFC2119] beschrieben zu interpretieren.
Die Grammatikregeln in diesem Dokument sind wie in [RFC5234] beschrieben zu interpretieren.
1.2. Specifications of JSON (JSON-Spezifikationen)
Dieses Dokument aktualisiert [RFC4627], das JSON beschrieben und den Medientyp "application/json" registriert hat.
Eine Beschreibung von JSON in ECMAScript-Begriffen erscheint in Version 5.1 der ECMAScript-Spezifikation [ECMA-262], Abschnitt 15.12. JSON wird auch in [ECMA-404] beschrieben.
Alle JSON-Grammatikspezifikationen stimmen in den syntaktischen Elementen der Sprache überein.
1.3. Introduction to This Revision (Einführung in diese Revision)
In den Jahren seit der Veröffentlichung von RFC 4627 hat JSON sehr breite Verwendung gefunden. Diese Erfahrung hat bestimmte Muster aufgedeckt, die, obwohl von den Spezifikationen erlaubt, zu Interoperabilitätsproblemen geführt haben.
Darüber hinaus wurden eine kleine Anzahl von Errata gemeldet (siehe RFC-Erratum-IDs 607 [Err607] und 3607 [Err3607]).
Das Ziel dieses Dokuments ist es, diese Errata anzuwenden, Inkonsistenzen mit anderen JSON-Spezifikationen zu beseitigen und Praktiken hervorzuheben, die zu Interoperabilitätsproblemen führen können.