Was ist „JavaScript Object Notation“ (JSON)

Programmiersprachen
Programmiersprachen
62a9319241084a709598852f3a59d3c1

JavaScript Object Notation (JSON)

Die JavaScript Object Notation (JSON) ist ein kompaktes Datenformat in einer einfach lesbaren Textform für den Datenaustausch zwischen Anwendungen. JSON Parser und Generatoren existieren in allen verbreiteten Script-Sprachen.

Genutzt wird JSON als Datenformat bei der Datenübertragung (Serialisierung) und zum Speichern strukturierter Daten.

Wozu wird JSON verwendet?

Im Vergleich zu XML ist JSON einfacher zu erlernen und schnell bei der Abarbeitung. Am häufigsten ist JSON in Web-Umgebungen anzutreffen.
Dienste, die Daten über eine REST Schnittstelle bereitstellen, geben oft ihre Daten als JSON zurück. Dazu gehört beispielsweise der Wetterdienst OpenWeatherMap.

Datenstruktur und Format-Definition

JSON kennt die folgenden Typen von Elementen.

  • Nullwert – dargestellt durch das Schlüsselwort null
  • Boolescher Wert – wird durch die Schlüsselwörter true und false dargestellt. Da es keine Zeichenketten sind, werden sie nicht in Anführungszeichen gesetzt.
  • Zahl – definiert als Folge der Ziffern 0–9, die durch ein negatives Vorzeichen eingeleitet und durch einen Dezimalpunkt unterbrochen werden kann.
  • Zeichenkette – eingeschlossen mit doppelten geraden Anführungszeichen. Eine Zeichenkette kann Unicode-Zeichen und durch \ eingeleitete Escape-Sequenzen enthalten.
  • Array – beginnt mit [ und endet mit ]. Das Array enthält eine durch Komma geteilte Liste von Elementen desselben oder verschiedenen Typs.
  • Objekt – fängt mit { und endet mit }. Das Objekt speichert eine durch Kommata geteilte, ungeordnete Liste von Eigenschaften. Leere Objekte sind zulässig.
    • Eigenschaft – besteht aus einem Schlüssel und einem Wert, getrennt durch einen Doppelpunkt (Schlüssel : Wert). Die Schlüssel müssen eindeutig sein.
      • der Schlüssel ist eine Zeichenkette
      • der Wert ist ein beliebiges Element

Beispiel

{
  "Herausgeber": "Xema",
  "Nummer": "1234-5678-9012-3456",
  "Deckung": 2e+6,
  "Waehrung": "EURO",
  "Inhaber":
  {
    "Name": "Mustermann",
    "Vorname": "Max",
    "maennlich": true,
    "Hobbys": ["Reiten", "Golfen", "Lesen"],
    "Alter": 42,
    "Kinder": [],
    "Partner": null
  }
}