Was ist JSON?

JSON ist die Abkürzung für JavaScript Object Notation ist ein schlankes Austauschformat für Daten.

JSON ist somit keine Programmiersprache, sondern dient dem Zweck Datenstrukturen zu definieren.

Du kannst mit einer JSON-Datei Datenstrukturen definieren und die JSON-Dateien damit zugleich als Format für einen technologieübergreifenden Datenaustausch nutzen.

Bei all dem beruht die JSON-Technologie auf den Konzepten etablierter Programmier-Sprachen.

Welche Vorteile bietet JSON zum Austausch für Daten?

JSON bietet einige Vorteile zum Datenaustausch. Dazu wurden von Douglas Crockford – dem Erfinder des JSON-Formats – folgende Design-Entscheidungen bei der Spezifikation der JSON-Notation getroffen:

  • JSON ist für Menschen einfach zu lesen
  • JSON lässt sich einfach schreiben und
  • die Notation ist für Maschinen einfach zu parsen
  • die JavaScript Object Notation unterstützt die Interoperabilität von (Web)-Technologien und unterschiedlichsten Komponenten
  • die Notation eignet sich ideal zum Analysieren von Datenstrukturen
  • JSON-Formate sind besonders einfach zu generieren
  • das Design Pattern basiert auf der Programmiersprache JavaScript
  • und unterstützt den Standard ECMA-262

Welche JSON-Eigenschaften ermöglichen diese Vorteile?

Bei JSON handelt es sich um ein Textformat. Als textbasiertes Datenformat ist es komplett unabhängig von Programmiersprachen.

Das JSON-Format folgt einer Vielzahl etablierter Konventionen

Überdies folgt das JSON-Format vielen bereits etablierten Konventionen. Diese grundlegenden Konventionen sind Designvorgaben und Konzepte, die sich in weit verbreiteten Programmiersprachen aus der Familie der C-basierten Sprachen – inklusive C, C++, C# und auch Java, JavaScript, Perl, Python bereits über einen langen Zeitraum in der Anwendung bewährt haben.

Somit ist eine große Anzahl von Softwareentwickler*innen bereits direkt mit den JSON-Konzepten vertraut.

All diese Eigenschaften zusammen machen JSON zum idealen Format für Datenaustausch.

Wie funktioniert JSON zum Datentausch?

JSON-Formate basieren auf zwei Datenstrukturen:

1. Name und Werte-Paare

In verschiedenen Programmiersprachen wird eine Kombination aus einem Namen mit einem Werte-Paar als

  • ein Objekt (object),
  • Satz (record),
  • Struktur (struct),
  • Wörterbuch bzw. Verzeichnis (dictionary),
  • Hash-Tabelle (hash table),
  • Schlüssel-Liste (keyed list) oder als
  • ein assoziatives Array (associative array)

realisiert.

2. Geordnete Liste von Werten

In den meisten Sprachen werden geordnete Liste von Werten als

  • Array (array),
  • Vektor (vector),
  • Liste (list) oder
  • Sequenz (sequence)

implementiert.

Universelle JSON-Datenstrukturen unterstützen die Interoperabilität

Beides sind universelle JSON-Datenstrukturen, die somit von nahezu allen modernen Programmiersprachen unterstützt werden.

Austauschbare Daten-Formate zwischen Programmiersprachen & Web-Technologien

Mit JSON-Strukturen ist es uns Programmierer*innen möglich ein zwischen Programmiersprachen austauschbares Datenformat zu nutzen, das auch auf diesen vertrauten Strukturen aufbaut.

JSON-Objekte

Ein JSON-Objekt ist eine ungeordnete Menge von Name/Wert Paaren.

  • Jedes Objekt beginnt mit {geschwungene Klammer auf und endet mit }geschwungene Klammer zu.
  • Jedem Namen folgt ein :Doppelpunkt gefolgt vom Wert und
  • die einzelnen Name/Wert Paare werden durch ,Komma voneinander getrennt.

JSON-Array

Ein Array ist eine geordnete Liste von Werten.

  • Arrays beginnen mit [eckige Klammer auf und enden mit ]eckige Klammer zu.
  • Werte werden durch ,Komma voneinander getrennt.

JSON-Werte

Ein Wert kann ein Objekt, ein Array, eine Zeichenkette (string), eine Zahl oder einer der Ausdrücke truefalse oder null sein.

Diese Strukturen können ineinander verschachtelt sein.

JSON-String

Ein String ist eine Zeichenkette und besteht aus keinem (leere Zeichenkette) oder mehr Unicode Zeichen.

  • Jeder String wird von doppelten Anführungszeichen umschlossen.
  • Eine Zeichenkette kann Escape-Sequenzen mit einer besonderen Bedeutung enthalten.
  • Ein einzelnes Zeichen wird durch eine Zeichenkette bestehend aus nur einem einzigen Zeichen dargestellt.
  • Eine  JSON-Zeichenkette ist der in C oder Java sehr ähnlich.

JSON-Zahl

Eine Zahl in JSON ist einer Zahl in C oder Java sehr ähnlich mit der Ausnahme, dass oktale und hexadezimale Zahlen nicht verwendet werden.

Leerzeichen / Whitespace

Leerzeichen können zwischen JSON-Elementen beliebig eingefügt werden.

Mit der Ausnahme einiger Details zur Enkodierung beschreiben diese Definition bereits die gesamte JSON-Sprache.