DE FR IT

JSON

Allgemeine Informationen

Titel JavaScript Object Notation
Kategorie Strukturierte Daten
Abkürzung JSON
Dateiendung .json
Mime Type application/json (Legacy: text/json, text/javascript)
Pronom PUID x-fmt/817
Version JSON wird im ECMA-404 spezifiziert. 1Eine IETF RFC-Spezifikation des Dateiformates JSON existiert und wird in der Regel referenziert: RCF8259 [2]. Für GeoJSON: RFC 7946 [3]

    

Beschreibung

JSON ist ein reines Textformat. Durch seine starke Verankerung bei Webanwendungen ist JSON weit verbreitet. JSON wurde geschaffen, um strukturierte Daten möglichst schnell im Web (Server-Client) übertragen und verarbeiten zu können. Untertypen von JSON sind u.a. GeoJSON und TopoJSON zum Austausch geografischer Daten (z.B. Koordinatenpunkte). Ein ausführlicher Beschrieb des Formates findet sich in [4] [5]

   

Bewertung

Offenheit: 4
JSON wird im ECMA-404 spezifiziert. [1] Eine RFC-Spezifikation des Dateiformates JSON existiert und wird in der Regel referenziert: RCF8259 [2].

Lizenzfreiheit: 4
Es existieren keinerlei Lizenzen auf Textformat oder Codierungen.

Verbreitung: 4
JSON wird für den Datentransfer zwischen Server und Client bei Webanwendungen verwendet. Es wird z.B. verwendet bei Webformularen oder bei Chatplattformen wie Twitter. Eine weitere Anwendung ist der Austausch geografischer Daten über die Unterformate GeoJSON und TopoJSON.

Funktionalitaet: 2
Bei der Migration von Plain-Text Format CSV und XML zu JSON gehen u.a. komplexen Datentypen verloren (z.B. TIME, DATE). Bei XML kommen zusätzlich benutzerdefinierte Typen abhanden. Die Inhalte dieser komplexen Datentypen werden in ein primitives Datenformat, z.B. einen String, umgewandelt.

Desweiteren verschwindet die Unterscheidung zwischen Attributen und Elementen, wenn XML zu JSON konvertiert wird. Das Layout von XML und CSV geht bei der Migration ebenfalls verloren. Für die Funktionalität dieser Formate spielen jedoch die Unterschiede im Layout eine untergeordnete Rolle.

JSON kann in XML und beschränkt in CSV konvertiert werden. Im Falle verschachtelter ("nested") JSON sind jedoch mehrere CSV notwendig, um den Inhalt abzubilden.

Implementierung: 4
JSON kann mit jedem Texteditor erstellt und gelesen werden. Mächtigere Editoren wie Notepad++, Altova XMLSpy oder Entwicklungsumgebungen für Software (IDE) zeigen auch die Struktur des JSON und erkennen Fehler darin.

Speicherdichte: 4
Bei JSON sind Kompressionsraten von Faktor 4-10 möglich, abhängig vom Kompressionsalgorithmus und der Redundanz von Daten und Strukturelementen.

Verifizierbarkeit: 3
Der Standard ECMA-404 schränkt JSON strukturelle und inhaltliche so ein, dass es möglich ist, JSON von anderen Textformaten zu unterscheiden. So unterstützt JSON nur primitive Datentypen, die Zeichencodierung ist immer Unicode, die Struktur ist eine Map und die Syntax entspricht einem JavaScript Objekt. Die Validierung des Formates ist über einen JSON-Parser möglich, z.B. der JavaScript Methode JSON.parse() oder über Applikationen.
Zusätzlich zu einer Validierung des Formates kann auch eine Schemavalidierung durchgeführt werden, sofern ein Schemafile vorhanden ist. Bei einer Schemavalidierung wird geprüft, ob die JSON-Struktur einer vorgegebenen, benutzerdefinierten Struktur entspricht. Vergleichbar ist dies mit der Validierung einer .xml-Datei auf Basis einer .xsd-Schemadatei.

Best Practice: 2
Als Nur-Text/Plain-Text sollte sich JSON für die digitale Langzeitarchivierung gut eignen. Da das Format erst um das Jahr 2000 spezifiziert wurde und erst über die Zeit XML als bevorzugtes Format für den Datenaustausch abgelöst hat, gibt es noch wenig Erfahrung bei der Langzeitarchivierung von JSON. Da sich JSON jedoch ohne Datenverlust in ein XML umwandeln lässt und XML ein etabliertes Format für die Langzeitarchivierung ist (z.B. als Teil von SIARD), lässt dies eine hohe Bewertung bei der Best Practice zu.

Perspektive: 3
JSON ist als Format für den Datenaustausch etabliert. Es ist zu erwarten, dass seine Verwendung weiter zunehmen wird. Eine Ablösung als meistverwendetes Format für den Datenaustausch ist aktuell nicht in Sicht.

Formatklasse: B
JSON entstand um das Jahr 2000. Es ist sehr verbreitetet durch seine Verwendung als Datenaustauschformat im Internet. Seine Bedeutung ist daher weiter am Wachsen.

   

Analyse

Vergleich JSON und XML [5]
Für die Speicherung grosser Datenmengen wird XML gegenüber JSON bevorzugt. XML bietet die Möglichkeit Daten und Metadaten strukturell in Form von Elementen und Attributen zu trennen. In XML ist es auch zulässig, Inhalte zu kommentieren. Bei JSON ist nicht von vornherein klar, welche Elemente den Wert darstellen und welche die Metadaten.

Vergleich von Daten in XML und JSON
Tabelle 1: Beschreibung von Daten in XML (mit Attributen und Kommentaren) und JSON.

Durch Arrays können in JSON-Dateien primitive Datentypen effizienter verpackt werden als bei XML. Aufgrund des Ursprungs des Formates in Javascript können JSON-Daten von Webanwendungen und den meisten Programmiersprachen zudem schneller verarbeitet werden.

Vergleich XML und JSON Array
Tabelle 2: Umsetzung eines Arrays in XML (mittels Attributen) und JSON

Nachfolgend sind die gewichtigsten Unterschiede zwischen JSON und XML aufgelistet:

JSON XML
Nur Unicode Verschiedene Encodings (z.B. ISO-8859-1)
  Unterstützt Attribute und Kommentare
Primitive Datentypen: Numerische Typen, character, boolean, null Auch komplexe Datentypen wie z.B. Datum
Daten als Map und in Arrays Daten als Baum

Tabelle 3: Vergleich von JSON mit XML

In JSON können indirekt auch Binärdateien (Bild, Audio, Video u.a.) gespeichert und transferiert werden. Die Binärdaten müssen dazu z.B. in Base64 enkodiert werden und als Unicode-Characterstring im JSON-File festgehalten werden. Die Enkodierung (z.B. Base64) muss ebenfalls im JSON festgehalten werden, um aus den Daten später wieder Binärdateien erstellen zu können. Da es bessere Methoden gibt, Binärdateien zu übertragen ist der Weg über JSON nicht empfehlenswert.

    

Fazit

JSON wurde als Format für einen effizienten Datenaustausch im Internet entwickelt. JSON ist archivisch im Vergleich zu XML eingeschränkt, da Datenelementen keine Attribute zugeordnet werden können. Des weiteren lässt JSON keine Kommentare zu. Komplexe Datentypen werden von JSON nicht unterstützt. XML oder Datenbanken in JSON zu konvertieren oder exportieren ist daher nicht sinnvoll. Ein JSON kann jedoch ohne Konvertierung archiviert werden, da dieses als Nur-Text/Plain-Text langfristig lesbar bleibt.

      

Referenz

Standard ECMA-404: The JSON Data Interchange Syntax, 2nd edition, December 2017 (ecma-international.org)
https://www.ecma-international.org/wp-content/uploads/ECMA-404_2nd_edition_december_2017.pdf

RCF 8259 - The JavaScript Object Notation (JSON) Data Interchange Format (ietf.org)
https://datatracker.ietf.org/doc/html/rfc8259

     

Literatur

[1] ECMA International, „The JSON Data Interchange Syntax,“ Genf.

[2] Internet Engineering Task Force (IETF) , „The JavaScript Object Notation (JSON) Data Interchange Format,“

[3] Internet Engineering Task Force (IETF) , „The GeoJSON Format,“ Online, 2016.

[4] Library of Congress, „JSON (JavaScript Object Notation),“

[5] Wikipedia, „JSON,“ Wikipedia, 17 9 2023 https://en.wikipedia.org/wiki/JSON

     

Katalog archivischer Dateiformate Version 7.0, Juni 2024