Zum Inhalt springen

json

Was ist JSON? Der ultimative Leitfaden zur JavaScript Object Notation

5 min read

Was ist JSON? Der ultimative Leitfaden zur JavaScript Object Notation

Wenn Sie jemals in der Webentwicklung gearbeitet, mit einer API interagiert oder eine moderne Softwareanwendung konfiguriert haben, sind Sie zweifellos auf JSON gestoßen. Es ist die unsichtbare Sprache, die das moderne Web antreibt und den nahtlosen Datenaustausch zwischen Servern und Webbrowsern auf der ganzen Welt ermöglicht.

Aber was genau ist JSON? Wie wurde ein Format, das auf JavaScript basiert, zum unbestrittenen Standard für den Datenaustausch in fast jeder Programmiersprache?

In diesem umfassenden, 1000-Wörter-Leitfaden werden wir JSON entmystifizieren. Wir werden seine Struktur untersuchen, verstehen, warum es ältere Formate wie XML ersetzt hat, und uns ansehen, wie es heute in der Softwareentwicklung praktisch eingesetzt wird.

Wofür steht JSON?

JSON steht für JavaScript Object Notation.

Trotz seines Namens ist JSON im Grunde ein sprachunabhängiges Datenformat. Obwohl die Syntax von der Art und Weise abgeleitet ist, wie Objekte in der Programmiersprache JavaScript geschrieben werden, müssen Sie kein JavaScript kennen, um JSON zu lesen, zu schreiben oder zu verstehen. Heutzutage verfügt praktisch jede Programmiersprache (Python, Java, C#, PHP, Ruby usw.) über integrierte Tools zum Parsen und Generieren von JSON-Daten.

Im Kern ist JSON ein leichtgewichtiges, textbasiertes Format, das zum Speichern und Transportieren strukturierter Daten verwendet wird. Es ist so konzipiert, dass es für Menschen leicht lesbar und schreibbar ist, während es für Maschinen gleichzeitig einfach zu analysieren (parsen) und zu generieren ist.

Die Syntax und Struktur von JSON

JSON basiert auf zwei universellen Datenstrukturen, die in fast allen modernen Programmiersprachen existieren:

  1. Eine Sammlung von Name/Wert-Paaren: Wird oft als Objekt, Datensatz, Struktur, Wörterbuch (Dictionary), Hash-Tabelle, Schlüsselliste oder assoziatives Array realisiert.
  2. Eine geordnete Liste von Werten: Wird oft als Array, Vektor, Liste oder Sequenz realisiert.

Schauen wir uns ein konkretes Beispiel an, um zu sehen, wie diese Strukturen in der Praxis aussehen. Hier ist eine typische JSON-Datei, die ein Benutzerprofil darstellt:

{
  "vorname": "Max",
  "nachname": "Mustermann",
  "alter": 30,
  "istAngestellt": true,
  "kontakt": {
    "email": "max.mustermann@example.com",
    "telefon": "555-1234"
  },
  "faehigkeiten": ["JavaScript", "Python", "Datenanalyse"],
  "projekte": null
}

Die Regeln im Detail

Wenn wir uns das obige Beispiel ansehen, können wir die strengen Regeln identifizieren, die die JSON-Syntax bestimmen:

  • Daten liegen in Name/Wert-Paaren vor: Auch bekannt als Schlüssel/Wert-Paare (Key/Value-Pairs). Ein Schlüssel muss eine in doppelte Anführungszeichen gesetzte Zeichenfolge sein (z. B. "vorname"). Der Wert kann eine Zeichenfolge (String), eine Zahl (Number), ein boolescher Wert (Boolean), null, ein Objekt oder ein Array sein. Schlüssel und Wert werden durch einen Doppelpunkt (:) getrennt.
  • Daten werden durch Kommas getrennt: Jedes Schlüssel/Wert-Paar wird durch ein Komma (,) vom nächsten getrennt.
  • Geschweifte Klammern halten Objekte: Ein Objekt ({}) ist eine ungeordnete Menge von Schlüssel/Wert-Paaren. In unserem Beispiel ist das gesamte Dokument ein Hauptobjekt, und "kontakt" enthält ein verschachteltes Objekt.
  • Eckige Klammern halten Arrays: Ein Array ([]) ist eine geordnete Sammlung von Werten. In unserem Beispiel enthält "faehigkeiten" ein Array aus drei Textzeichenfolgen.
  • Doppelte Anführungszeichen sind für Strings obligatorisch: Im Gegensatz zu JavaScript, wo Sie einfache Anführungszeichen (') verwenden können, erfordert JSON strikt doppelte Anführungszeichen (") für Strings und Schlüssel.

Erlaubte Datentypen

Ein Wert in JSON muss einer der folgenden Datentypen sein:

  • String: Text in doppelten Anführungszeichen (z. B. "Hallo").
  • Zahl (Number): Eine Ganzzahl oder Fließkommazahl (z. B. 42 oder 3.14).
  • Boolean: true oder false.
  • Null: Repräsentiert einen leeren oder nicht vorhandenen Wert (null).
  • Objekt (Object): Ein verschachteltes JSON-Objekt ({}).
  • Array: Eine Liste von Werten ([]).

JSON unterstützt absichtlich keine Funktionen, Datumsangaben (Daten werden normalerweise als Strings übergeben) oder undefinierte (undefined) Werte. Diese strenge Begrenzung gewährleistet maximale Kompatibilität über verschiedene Programmiersprachen hinweg.

Warum JSON XML ersetzt hat

Um JSON wirklich zu schätzen, müssen wir uns das Format ansehen, das es weitgehend ersetzt hat: XML (eXtensible Markup Language).

In den frühen 2000er Jahren war XML der Standard für den Datenaustausch im Web (denken Sie an AJAX - Asynchronous JavaScript and XML). XML ist jedoch stark Tag-basiert, ähnlich wie HTML.

So würde unser früheres JSON-Beispiel in XML aussehen:

<benutzer>
  <vorname>Max</vorname>
  <nachname>Mustermann</nachname>
  <alter>30</alter>
  <istAngestellt>true</istAngestellt>
  <kontakt>
    <email>max.mustermann@example.com</email>
    <telefon>555-1234</telefon>
  </kontakt>
  <faehigkeiten>
    <faehigkeit>JavaScript</faehigkeit>
    <faehigkeit>Python</faehigkeit>
    <faehigkeit>Datenanalyse</faehigkeit>
  </faehigkeiten>
</benutzer>

Im Vergleich zu XML hat JSON den Krieg um den Web-Datenaustausch aus mehreren Gründen gewonnen:

  1. Weniger ausführlich (Less Verbose): JSON verwendet keine schließenden Tags, wodurch Dateigrößen erheblich verkleinert und die Bandbreitennutzung reduziert wird.
  2. Schneller zu parsen: Da JSON die Datenstrukturen moderner Programmiersprachen eng widerspiegelt, ist das Parsen von JSON in ein Objekt im Speicher unglaublich schnell. XML-Parsing ist notorisch langsam und ressourcenintensiv.
  3. Arrays sind nativ: JSON unterstützt Arrays nativ ([]). XML hat keinen nativen Array-Typ; Entwickler müssen wiederholte Elemente erstellen (wie <faehigkeit> oben), um eine Liste zu simulieren.
  4. Einfacher für Menschen: Die saubere, minimalistische Syntax von JSON ist für Menschen einfach viel leichter manuell zu lesen und zu schreiben als das schwere Markup von XML.

Wo wird JSON heute verwendet?

JSON hat sich zum De-facto-Standard für die Übertragung von Textdaten entwickelt. Zu den wichtigsten Anwendungsfällen gehören:

1. Web-APIs (REST und GraphQL)

Wenn eine moderne Webanwendung (wie ein React- oder Vue-Frontend) Daten von einem Server (wie einem Node.js- oder Python-Backend) abrufen muss, werden diese Daten fast immer im JSON-Format gesendet. Egal, ob Sie Wetterdaten abrufen, Tweets laden oder ein Checkout-Formular senden, JSON ist die Nutzlast (Payload).

2. Konfigurationsdateien

Aufgrund seiner für Menschen lesbaren Natur wird JSON in modernen Entwicklungswerkzeugen stark für Konfigurationsdateien verwendet. Wenn Sie Node.js verwenden, werden die Einstellungen und Abhängigkeiten Ihres Projekts in einer package.json-Datei gespeichert. Tools wie VS Code, Prettier und Eslint verlassen sich alle auf JSON für die Konfiguration.

3. NoSQL-Datenbanken

Moderne NoSQL-Datenbanken, insbesondere MongoDB, speichern Daten in einem Format namens BSON (Binary JSON). Dadurch können Entwickler komplexe, verschachtelte Datenstrukturen direkt in der Datenbank speichern, ohne sie wie in herkömmlichen SQL-Datenbanken auf starre Zeilen und Spalten abbilden (mappen) zu müssen.

Fazit

Der Aufstieg von JSON zur Dominanz ist ein Beweis für die Macht der Einfachheit. Durch die Schaffung eines Formats, das leichtgewichtig, streng definiert und von Menschen und Maschinen gleichermaßen verstanden wird, revolutionierte JSON die Art und Weise, wie Daten über das Web übertragen werden.

Egal, ob Sie ein erfahrener Softwareentwickler sind, der komplexe Microservices aufbaut, oder ein Anfänger, der lernt, wie man Daten für seine erste Web-App abruft, die Beherrschung von JSON ist eine grundlegende Fähigkeit, die in der modernen Technologielandschaft absolut unerlässlich ist.

Buy me a coffee