Was verbirgt sich hinter dem Datenformat JSON?

Die JavaScript Object Notation (JSON) dient dem Zweck, Informationen unabhängig von der Anwendung, Programmiersprache oder einem Betriebssystem speichern und austauschen zu können. Somit handelt es sich um ein universelles Datenformat, das grundlegende Eigenschaften wie Kodierung, Syntax und Struktur vorgibt, ohne Einfluss auf den Aufgabenbereich oder die Interpretation auszuüben. Es erlaubt eine komplexe Verschachtelung beziehungsweise Referenzierung anderer JSON-Dateien und kennt verschiedene Typen von Variablen, bietet in seinem offiziellen Standard aber keine Möglichkeit beispielsweise zum Vergleich von Werten und Ausdrücken oder für die Kommentierung von Inhalten an.

Was sind die Besonderheiten von JSON?

Ursprünglich schuf der US-amerikanische Programmierer und Spieleentwickler Douglas Crockford JSON als Erweiterung zu der Programmiersprache JavaScript, um Informationen unabhängig von einer externen Datenbank oder programminternen Schnittstelle zwischen verschiedenen Anwendungen austauschen zu können. Im Vergleich zu anderen Formaten ist es auf Effizienz und Flexibilität optimiert, weshalb es von diversen anderen Projekten als Standard direkt übernommen oder adaptiert wurde. Programme zur Interpretation und Ausgabe von JSON (Parser) existieren in allen populären Programmiersprachen und entsprechende Routinen lassen sich unkompliziert über offizielle Bibliotheken einbinden. Auffallend sind kleine Einschränkungen, zu denen etwa der Verzicht auf eine Kommentarfunktion, Sonderzahlen wie die Unendlich oder spezifizierte Variablen – zum Beispiel ein Format für Datums- und Zeitangaben – zählen.

Welche Vorteile besitzt JSON für Programmierer?

Die erste Definition als Standard erfolgte 1997 und diente zunächst nur als ein allgemeines Datenformat für Anwendungen in JavaScript. Rund um die Jahrtausendwende gewann die Programmiersprache zunehmend an Bedeutung, um interaktive und multimediale Elemente im frühen Internet zu gestalten. Diese Entwicklung in Verbindung mit seiner effizienten Struktur führte zu einer häufigen Verwendung von JSON für die Kommunikation zwischen Client und Server. Seine hohe Popularität resultiert nicht zuletzt aus dieser Verbreitung, lässt sich jedoch ebenfalls mit einigen technischen Eigenschaften erklären:

  • Vollständig von der Umgebung unabhängiges Datenformat
  • Für einfache wie komplex verzweigte Strukturen geeignet
  • Breite Unterstützung durch verschiedene Programmiersprachen
  • Einfacher Import/Export in andere Datenbanken
  • Minimale Dateigröße durch auf Effizienz optimierte Struktur
  • Simpler, eindeutig standardisierter Austausch von Daten ohne zusätzliche Software möglich
  • Ideale, universell verwendbare Lösung für ressourcenarme Umgebungen wie Embedded PC
  • [Flexible Erweiterung etwa durch Padding ((JSONP) oder JSON Web Token (JWT)

Vorhandene Einschränkungen fallen im Vergleich zu den Vorteilen des Standards lediglich gering aus und lassen sich in der Regel durch die Programmierung umgehen. Einige Bibliotheken verwenden zudem eigene, nicht standardmäßige Ergänzungen, um zum Beispiel eine Kommentierung innerhalb einer Datei zu ermöglichen.

Wie wird JSON bei Software und Webapplikationen eingesetzt?

Das Datenformat speichert alle Informationen in einer Datei, so dass unterschiedliche Quellen unabhängig von anderen Programmen auf sie zugreifen und sie verändern können. Als Steuerzeichen dienen primär (geschweifte) Klammern, der Doppelpunkt und das Komma. Sie gliedern einen UTF-Klartext in Objekte, Namen (Schlüssel) und zugeordnete Werte. Ein einfaches Beispiel für einen Datensatz in JSON mit mehreren Typen von Variablen wäre:

{
„Nachname“ : „Mustermann“,
„Vorname“ : „Mathilde“,
„VIP-Kunde“ : true,
„Rechnungsnummern“ : [„0815“, „0916“, „1017“ ]
}

Die Datei kann wahlweise lokal gespeichert vorliegen oder über ein Netzwerk von einem Server übermittelt werden. Im Vergleich zu Alternativen wie zum Beispiel der Extensible Markup Language (XML) besitzt JSON eine übersichtlichere, leichter lesbare Struktur und verwendet bei gleichem Informationsgehalt weniger Zeichen.

Entsprechend dem individuellen Bedarf kann ein Anwender das Datenformat um verschiedene Funktionen erweitern. So steht beispielsweise mit JSON Schema eine Möglichkeit für die Überprüfung von Datensätzen auf Vollständigkeit und Gültigkeit zur Verfügung. Mit dem sogenannten Padding (JSONP) ist eine domainübergreifende Abfrage aus unterschiedlichen Quellen möglich. Das JSON Web Token (JWT) wiederum dient dazu, Sicherheitsfunktionen wie die Authentifizierung von Clients oder die Verschlüsselung von Verbindungen zu übernehmen, ohne weitere Hilfsmittel wie externe Datenbanken oder dauerhaft gespeicherte Cookies zu benötigen.