Was ist JSON? Ein Leitfaden für Anfänger

Wenn Sie Ihre Reise in die Webentwicklung beginnen, sind Sie wahrscheinlich schon unzählige Male auf JSON gestoßen, auch wenn Sie nicht wussten, was es war. JSON, was für JavaScript Object Notation steht, ist das am weitesten verbreitete Format für die Übertragung von Daten zwischen Anwendungen. Von den Tweets, die Sie in sozialen Medien lesen, bis zu den Wetterdaten auf Ihrem Handy – JSON arbeitet im Hintergrund, um all dies möglich zu machen.

JSON in einfachen Worten

Stellen Sie sich JSON als einen universellen Übersetzer für Daten zwischen verschiedenen Computersystemen vor. So wie Menschen sich darauf geeinigt haben, Englisch als gemeinsame Sprache im internationalen Geschäft zu verwenden, haben sich Computer und Anwendungen weitgehend darauf geeinigt, JSON als gemeinsames Format für den Informationsaustausch zu verwenden. Aber was macht JSON besonders im Vergleich zu den Alternativen, die davor kamen? Im Kern ist JSON einfach eine Art, Daten als Text zu schreiben, der bestimmten Regeln folgt. Diese Regeln sind einfach genug, dass sowohl Menschen sie lesen als auch Computer sie leicht parsen können. Wenn Sie eine JSON-Datei betrachten, sehen Sie Daten, die in einer klaren, hierarchischen Struktur organisiert sind und nur wenige grundlegende Elemente verwenden: geschweifte Klammern {} für Objekte, eckige Klammern [] für Listen, Doppelpunkte zur Trennung von Namen und Werten und Kommas zur Trennung von Elementen. Im Gegensatz zu seinem Vorgänger XML, das ausführliche öffnende und schließende Tags wie <name>Max</name> verwendete, nutzt JSON eine sauberere Syntax: {"name": "Max"}. Diese Einfachheit ist einer der Hauptgründe, warum JSON so populär geworden ist. Es ist weniger überladen, einfacher zu schreiben und nimmt weniger Platz ein, wenn es über Netzwerke übertragen wird. JSON repräsentiert reale Konzepte natürlich. Eine Person kann als Objekt mit Eigenschaften wie Name, Alter und E-Mail dargestellt werden. Ein Warenkorb kann ein Array von Produktobjekten sein. Ein Unternehmen kann ein Objekt sein, das Arrays von Mitarbeitern und Abteilungen enthält. Diese natürliche Zuordnung zwischen realen Entitäten und JSON-Strukturen ist es, was die Arbeit damit so intuitiv macht. Trotz des 'JavaScript' im Namen ist JSON vollständig sprachunabhängig. Jede größere Programmiersprache hat eingebaute Unterstützung für das Parsen und Generieren von JSON. Python hat json, Java hat Jackson und Gson, PHP hat json_encode und json_decode, und JavaScript arbeitet natürlich mit JSON, da die Syntax auf seiner Objektliteral-Notation basiert. Diese universelle Unterstützung ist ein weiterer Grund, warum JSON zum De-facto-Standard für den Datenaustausch geworden ist.

Warum JSON so beliebt ist

Der Aufstieg von JSON zur Dominanz in der Welt des Datenaustauschs geschah nicht zufällig. Es entstand als Lösung für echte Probleme, mit denen Entwickler konfrontiert waren, und es floriert weiterhin, weil es diese Probleme besser löst als die Alternativen. Bevor JSON weit verbreitet wurde, war XML das primäre Format für den Datenaustausch zwischen Webdiensten. Obwohl XML leistungsfähig und flexibel ist, bringt es erheblichen Overhead mit sich. XML-Dokumente erfordern Verarbeitungsanweisungen, Namespaces, Entscheidungen zwischen Attributen und Elementen sowie das Parsen mit komplexen DOM- oder SAX-Parsern. Für einfachen Datenaustausch war das übertrieben. Entwickler wollten etwas Leichteres. JSON bot diese leichtgewichtige Alternative. Eine REST-API, die eine Liste von Benutzern in XML zurückgibt, könnte Dutzende von Zeilen mit öffnenden und schließenden Tags erfordern, während dieselben Daten in JSON in einem Bruchteil des Platzes dargestellt werden könnten. Diese Reduzierung der Payload-Größe übersetzt sich direkt in schnellere Netzwerkübertragungen und niedrigere Bandbreitenkosten, was besonders wichtig für mobile Anwendungen ist, wo jedes Kilobyte zählt. Die Parsing-Geschichte ist ebenso überzeugend. In JavaScript ist das Parsen von JSON praktisch kostenlos, da JSON.parse() einen String sofort in ein natives JavaScript-Objekt verwandelt. Vergleichen Sie das mit XML-Parsing, das das Erstellen eines Parser-Objekts, das Behandeln von Knotentypen und das Navigieren in einem Dokumentbaum erfordert. Selbst in anderen Sprachen ist JSON-Parsing typischerweise einfacher und schneller als XML-Parsing. Die Einfachheit von JSON reduziert auch die Lernkurve für Entwickler. Ein Junior-Entwickler kann die JSON-Syntax in Minuten verstehen: Objekte mit Schlüssel-Wert-Paaren, Arrays von Werten und eine Handvoll Datentypen (Strings, Zahlen, Boolesche Werte, null). Es ist nicht nötig, etwas über DTDs, XPath, XSLT oder die Dutzend anderen Technologien zu lernen, die oft XML begleiten. Der Aufstieg von REST-APIs und Single-Page-Anwendungen schuf die perfekte Umgebung für JSON, um zu florieren. Als Webanwendungen dazu übergingen, Daten asynchron abzurufen und auf der Client-Seite zu rendern, brauchten Entwickler ein Format, mit dem JavaScript mühelos arbeiten konnte. JSON war dieses Format. Heute ist JSON überall. Es ist das Antwortformat für fast jede Web-API. Es ist das Speicherformat für Dokumentendatenbanken wie MongoDB und CouchDB. Es ist das Konfigurationsformat für Node.js-Pakete (package.json), TypeScript (tsconfig.json), VS Code-Einstellungen und unzählige andere Tools. JSON zu lernen ist nicht nur nützlich, es ist essentiell für die moderne Softwareentwicklung.

JSON-Beispiel

Der beste Weg, JSON zu verstehen, ist, es in Aktion zu sehen. Lassen Sie uns durch progressiv komplexere Beispiele gehen, die JSONs Fähigkeiten demonstrieren und zeigen, wie es reale Daten modelliert. Das einfachste mögliche JSON ist nur ein einzelner Wert. Obwohl nicht häufig in APIs zu sehen, sind dies alle gültiges JSON: 42 (eine Zahl), "hallo" (ein String), true (ein Boolean), null (Null-Wert). Das meiste JSON, dem Sie begegnen werden, besteht jedoch aus Objekten oder Arrays. Ein einfaches JSON-Objekt repräsentiert eine einzelne Entität mit Eigenschaften: {"name": "Max Mustermann", "alter": 30, "email": "[email protected]"}. Jede Eigenschaft hat einen Schlüssel (den Namen in Anführungszeichen) und einen Wert (der jeder JSON-Datentyp sein kann). Schlüssel und Werte werden durch Doppelpunkte getrennt, und Eigenschaften werden durch Kommas getrennt. Arrays ermöglichen es Ihnen, Listen von Werten darzustellen: ["Apfel", "Banane", "Kirsche"]. Arrays können beliebige JSON-Werte enthalten, einschließlich einer Mischung von Typen, obwohl Arrays in der Praxis normalerweise Elemente desselben Typs für Konsistenz enthalten. Die wahre Kraft von JSON zeigt sich, wenn Sie Objekte und Arrays verschachteln. Hier ist ein realistischeres Beispiel, das ein Benutzerprofil darstellt: {"id": 12345, "benutzername": "mmustermann", "profil": {"vorname": "Max", "nachname": "Mustermann", "bio": "Softwareentwickler aus Wien"}, "interessen": ["Programmieren", "Wandern", "Fotografie"], "socialLinks": [{"plattform": "twitter", "url": "https://twitter.com/mmustermann"}, {"plattform": "github", "url": "https://github.com/mmustermann"}], "einstellungen": {"newsletter": true, "darkMode": false, "sprache": "de"}, "erstelltAm": "2024-01-15T10:30:00Z"} Dieses einzelne JSON-Objekt enthält: primitive Werte (id als Zahl, benutzername als String), ein verschachteltes Objekt (profil), ein einfaches Array (interessen), ein Array von Objekten (socialLinks), ein Einstellungsobjekt mit Boolean-Werten und einen ISO 8601 formatierten Datums-String. Dies demonstriert, wie JSON komplexe, reale Datenstrukturen elegant darstellen kann. Wenn es mit korrekter Einrückung formatiert wird, wird diese Struktur sofort lesbar, wobei jede Verschachtelungsebene eingerückt ist, um die Hierarchie klar zu zeigen.

Wo JSON verwendet wird

JSON ist so allgegenwärtig geworden, dass die Aufzählung, wo es verwendet wird, fast so ist wie die Aufzählung, wo Strom verwendet wird – es ist überall. Das Verständnis der Breite von JSONs Anwendungen hilft zu schätzen, warum es eine so wertvolle Fähigkeit ist, die man beherrschen sollte. Die prominenteste Verwendung von JSON sind Web-APIs. Wenn Ihre Wetter-App die Vorhersage abruft, wenn Ihr Social-Media-Feed neue Beiträge lädt, wenn Ihre E-Commerce-Seite Produktdetails abruft – all das passiert typischerweise durch HTTP-Anfragen, die JSON-Antworten zurückgeben. Der REST-Architekturstil und JSON sind in der modernen Webentwicklung praktisch synonym geworden. Selbst neuere API-Paradigmen wie GraphQL verwenden JSON für ihr Antwortformat. Konfigurationsdateien sind eine weitere wichtige Domäne für JSON. Das Node.js-Ökosystem hat sich auf package.json zur Verwaltung von Abhängigkeiten und Projektmetadaten standardisiert. Diese einzelne Entscheidung bedeutete, dass Millionen von Entwicklern täglich mit JSON arbeiten würden. TypeScript verwendet tsconfig.json, Babel verwendet babel.config.json, ESLint verwendet .eslintrc.json, VS Code speichert Einstellungen in JSON-Dateien, und die Liste geht weiter. Die für Menschen lesbare Natur von JSON macht es ideal für Konfigurationen, die Entwickler lesen und bearbeiten müssen. Dokumentendatenbanken wie MongoDB und CouchDB speichern Daten als JSON-Dokumente (technisch BSON, ein binäres JSON-Format, im Fall von MongoDB). Diese Abstimmung zwischen dem Speicherformat und dem API-Format vereinfacht die Entwicklung erheblich. Sie können ein JavaScript-Objekt direkt speichern, ohne es auf Tabellen und Spalten abzubilden, und es in derselben Form abrufen. Browser-APIs verwenden JSON ausgiebig. Die localStorage- und sessionStorage-APIs speichern Daten als Strings, daher werden JSON.stringify() und JSON.parse() häufig verwendet, um komplexe Datenstrukturen zu speichern. Die Fetch-API gibt Response-Objekte zurück, die eine praktische .json()-Methode zum Parsen von Antworten haben. Datenserialisierung für Message Queues, Event Streams und Inter-Service-Kommunikation verwendet häufig JSON. Apache Kafka, RabbitMQ und AWS SQS transportieren üblicherweise JSON-kodierte Nachrichten. Webhooks von Diensten wie Stripe, GitHub und Slack liefern Ereignisdaten als JSON-Payloads. Selbst außerhalb der Webentwicklung hat JSON Anwendungen gefunden. Wissenschaftlicher Datenaustausch, Konfigurationsmanagement-Tools wie Ansible, IoT-Gerätekommunikation und Log-Aggregationssysteme nutzen alle JSON. Die Einfachheit und universelle Unterstützung des Formats machen es zur sicheren Wahl, wenn mehrere Systeme Daten austauschen müssen. Während Sie in Ihrer Entwicklerkarriere voranschreiten, werden Sie mit JSON in unzähligen Kontexten arbeiten. Die Investition, es tiefgehend zu verstehen, zahlt sich in jedem Projekt aus, das Sie berühren.

Tool ausprobieren

JSON Formatter

JSON Formatter