JSON
Was ist JSON und wie ist es aufgebaut?
Warum brauchen wir ein Format wie JSON?
In unserer digitalen Welt tauschen Computer und Anwendungen ständig Daten aus. Stell dir vor, du bestellst online ein Buch: Dein Computer (Client) muss dem Server des Online-Shops mitteilen, welches Buch du möchtest, wohin es geliefert werden soll und wie du bezahlen willst. Der Server wiederum muss deinem Computer Bestellbestätigungen oder Versandinformationen senden. Damit dieser Austausch reibungslos funktioniert, benötigen die Systeme eine gemeinsame "Sprache" oder ein gemeinsames Format, um diese Daten strukturiert darzustellen. Genau hier kommt JSON (JavaScript Object Notation) ins Spiel. Es ist ein leichtgewichtiges, textbasiertes Datenformat, das für Menschen einfach zu lesen und für Maschinen einfach zu analysieren (parsen) und zu generieren ist.
Ein Beispiel für eine Buchbestellung im JSON-Format könnte so aussehen:
{
"bestellnummer": "2024-A123",
"kunde": {
"name": "Max Mustermann",
"email": "max@example.com",
"lieferadresse": {
"strasse": "Hauptstrasse 1",
"plz": "10115",
"stadt": "Berlin"
}
},
"artikel": [
{
"produkt_id": "978-3-16-148410-0",
"titel": "Programmieren lernen mit Python",
"preis": 29.99,
"menge": 1
},
{
"produkt_id": "978-3-446-44885-3",
"titel": "Datenbanken für Einsteiger",
"preis": 24.50,
"menge": 1
}
],
"gesamtsumme": 54.49,
"versandart": "Standard",
"bezahlt": true
}
Dieses Beispiel zeigt, wie verschiedene Informationen – von Texten über Zahlen bis hin zu verschachtelten Strukturen – klar und übersichtlich dargestellt werden können.
Wie ist ein JSON-Dokument aufgebaut?
JSON-Daten sind immer in Schlüssel-Wert-Paaren organisiert, ähnlich wie ein Wörterbuch oder eine Liste von Eigenschaften. Schlüssel (Keys) sind immer Zeichenketten (Strings) und müssen in doppelten Anführungszeichen stehen (z.B. "name"
). Sie beschreiben die Bedeutung des Wertes. Werte (Values) können verschiedene Datentypen haben:
- String: Eine Zeichenkette, also Text. Muss ebenfalls in doppelten Anführungszeichen stehen (z.B.
"Max Mustermann"
). - Number: Eine Zahl, ganzzahlig oder mit Komma (z.B.
29.99
oder1
). Keine Anführungszeichen. - Boolean: Ein Wahrheitswert, entweder
true
oderfalse
. Keine Anführungszeichen. - Array: Eine geordnete Liste von Werten. Arrays werden in eckige Klammern
[]
eingeschlossen, und die einzelnen Elemente werden durch Kommas getrennt (z.B.["Standard", "Express"]
). Die Elemente in einem Array können unterschiedliche Datentypen haben. - Objekt: Eine ungeordnete Sammlung von Schlüssel-Wert-Paaren. Objekte werden in geschweifte Klammern
{}
eingeschlossen. Dies ermöglicht es, Daten zu verschachteln und komplexere Strukturen aufzubauen (siehe daskunde
-Objekt im Beispiel oben). null
: Repräsentiert einen absichtlich leeren oder nicht vorhandenen Wert. Keine Anführungszeichen.
Wichtige Notationsregeln:
- Schlüssel-Wert-Paare innerhalb eines Objekts werden durch Kommas
,
getrennt. - Elemente innerhalb eines Arrays werden ebenfalls durch Kommas
,
getrennt. - Nach dem letzten Schlüssel-Wert-Paar in einem Objekt oder dem letzten Element in einem Array darf kein Komma stehen.
Wie schneidet JSON im Vergleich zu anderen Datenformaten ab?
Welche Vorteile bietet JSON?
JSON hat sich aufgrund mehrerer Vorteile als sehr beliebtes Datenaustauschformat etabliert:
- Sehr gute Lesbarkeit für Menschen: Die Struktur mit Schlüssel-Wert-Paaren und die klare Hierarchie machen JSON-Daten auch ohne spezielle Werkzeuge relativ einfach zu lesen und zu verstehen. Ein Blick auf das Buchbestellbeispiel oben genügt meist, um die Struktur zu erfassen.
- Einfache Verarbeitung durch Maschinen: JSON ist so konzipiert, dass es von Programmiersprachen leicht geparst (analysiert) und generiert werden kann. Viele Sprachen (wie JavaScript, Python, Java, C#) bieten eingebaute Funktionen oder weit verbreitete Bibliotheken zur Verarbeitung von JSON.
- Kompaktheit: Im Vergleich zu älteren Formaten wie XML (Extensible Markup Language) ist JSON oft "weniger geschwätzig". XML benötigt für jedes Datenelement öffnende und schließende Tags (z.B.
<titel>Mein Buch</titel>
), während JSON dies mit dem Schlüssel-Wert-Paar ("titel": "Mein Buch"
) kürzer darstellt. Das führt oft zu kleineren Dateigrößen und somit zu schnelleren Datenübertragungen, besonders im Web. - Weite Verbreitung und Standardisierung: JSON ist der De-facto-Standard für viele Web-APIs (Programmierschnittstellen, über die Webdienste Daten austauschen). Wenn du Daten von einem Wetterdienst, einer Social-Media-Plattform oder einem Kartendienst abrufst, ist die Antwort sehr wahrscheinlich im JSON-Format. Es wird auch häufig für Konfigurationsdateien verwendet.
Welche Nachteile hat JSON?
Trotz seiner vielen Vorteile hat JSON auch einige Einschränkungen:
- Keine Kommentare: Die JSON-Spezifikation erlaubt keine Kommentare direkt im Code. Dies kann es manchmal schwierig machen, komplexe JSON-Strukturen direkt in der Datei zu dokumentieren oder zu erklären. Entwickler:innen müssen Kommentare dann außerhalb der JSON-Datei führen oder auf (nicht-standardisierte) Tricks wie spezielle Schlüssel (z.B.
"_comment": "Dies ist eine Erklärung"
) zurückgreifen. - Weniger mächtig für sehr komplexe Datenstrukturen als XML: XML bietet fortgeschrittenere Konzepte wie Namensräume (um Namenskonflikte zu vermeiden), Schemadefinitionen (XSD zur Validierung der Struktur) und die Möglichkeit, Entitäten oder komplexere Verknüpfungen direkt im Format abzubilden. JSON ist hier bewusst einfacher gehalten.
- Performance bei extrem großen Datenmengen oder Hochleistungsanwendungen: Da JSON ein textbasiertes Format ist, benötigt es mehr Speicherplatz und Verarbeitungszeit als optimierte binäre Formate (z.B. Protocol Buffers von Google oder Apache Avro). Für Anwendungsfälle, bei denen jede Millisekunde und jedes Byte zählt (z.B. in der internen Kommunikation von Microservices oder bei der Verarbeitung von Terabytes an Daten), können binäre Formate überlegen sein.
- Strikte Syntax: Obwohl die Syntax einfach ist, ist sie sehr strikt. Ein vergessenes Komma, ein fehlendes Anführungszeichen oder ein Komma zu viel am Ende einer Liste kann dazu führen, dass das gesamte JSON-Dokument ungültig wird und nicht mehr verarbeitet werden kann.
Lernziele
- die grundlegende Syntax und Struktur von JSON-Dokumenten erklären, indem die Verwendung von Schlüssel-Wert-Paaren, Objekten (gekennzeichnet durch `{}`) und Arrays (gekennzeichnet durch `[]`) sowie die Regeln für die Notation erläutert werden.
- die Vor- und Nachteile von JSON im Vergleich zu anderen Datenformaten erklären, indem Kriterien wie Lesbarkeit für Menschen, Verarbeitungsgeschwindigkeit durch Maschinen, Komplexität der Struktur und Verbreitung in Web-Technologien gegenübergestellt werden.