JSON (JavaScript Object Notation) ist ein leichtgewichtiges Textformat zum Speichern und Austauschen strukturierter Daten. Es treibt die große Mehrheit der Web-APIs, die meisten Konfigurationsdateien und unzählige Datenbanken an. Wenn Sie jemals eine REST-API-Antwort gesehen oder eine package.json-Datei geöffnet haben, haben Sie JSON gelesen. Dieser Guide erklärt genau, was JSON ist, wie das Format aussieht und warum es zur Lingua franca des Datenaustauschs wurde.
Was ist JSON?
JSON steht für JavaScript Object Notation. Es wurde Anfang der 2000er von Douglas Crockford als einfachere Alternative zu XML für den Datenaustausch zwischen Webserver und Browser erschaffen. Trotz des „JavaScript“ im Namen ist JSON sprachunabhängig —— alle großen Sprachen bringen einen eingebauten JSON-Parser mit.
Das Format wird durch zwei internationale Standards definiert: RFC 8259 von der IETF (Geschichte und Schlüsseländerungen) und ECMA-404 von Ecma International. Beide sagen dasselbe: JSON ist eine Folge von Unicode-Zeichen, die einen von sechs Datentypen darstellt, UTF-8-kodiert.
Die sechs Datentypen von JSON
JSON unterstützt genau sechs Werttypen. Sie zu verstehen, ist die Grundlage zum Verständnis des JSON-Formats.
1. Objekt (Object)
Eine ungeordnete Sammlung von Schlüssel-Wert-Paaren in geschweiften Klammern. Schlüssel müssen Strings (in doppelten Anführungszeichen) sein. Werte können jeden JSON-Typ haben.
{
"name": "Alice",
"age": 30,
"active": true
}2. Array
Eine geordnete Liste von Werten in eckigen Klammern.
["apple", "banana", "cherry"]3. Zeichenkette (String)
Eine Folge von Unicode-Zeichen in doppelten Anführungszeichen. Einfache Anführungszeichen sind kein gültiges JSON.
"Hello, world!"4. Zahl (Number)
Eine Ganzzahl oder Fließkommazahl. JSON hat keine separaten Typen für Integer und Float —— nur number. Keine Anführungszeichen, keine Hex-Literale, kein NaN oder Infinity.
42
3.14
-7
1.5e105. Boolean
Genau true oder false, in Kleinbuchstaben. JSON akzeptiert nicht True, False, yes, no, 1 oder 0 als Booleans.
true
false6. Null
Repräsentiert das Fehlen eines Werts. Geschrieben als null in Kleinbuchstaben.
nullWas ist eine JSON-Datei? (und das .json-Format)
Eine JSON-Datei (manchmal getippt als jason file) ist eine reine Textdatei mit einem einzigen JSON-Wert —— üblicherweise ein Objekt oder Array. Das .json-Format ist einfach UTF-8-Text gemäß RFC 8259, mit der Erweiterung .json per Konvention. Da es reiner Text ist, brauchen Sie keinen speziellen Viewer.
Eine JSON-Datei (oder .json) öffnen: jeder Texteditor genügt —— VS Code, Notepad, TextEdit, Sublime, nano. Dieselbe Frage wird auf viele Arten gestellt —— how to open json files, how to open a .json file, how do i open a json file, how do you open a json file oder einfach open json file —— und die Antwort ist dieselbe: öffnen Sie sie als Text. Für eine besser lesbare Ansicht fügen Sie den Inhalt in den JSON-Viewer für einen einklappbaren Baum ein, oder in das Tool JSON Fix, um es zu formatieren. Auf macOS und Windows öffnet ein Doppelklick auf eine .json sie meist im Standard-Texteditor; wenn sie versucht, sich im Browser zu öffnen, machen Sie einen Rechtsklick und wählen Sie „Öffnen mit“, um einen Editor zu wählen. Sie müssen nichts entpacken —— .json sind keine komprimierten Archive.
Eine JSON-Datei erstellen (auch gesucht als „how to make a json file“): öffnen Sie einen Texteditor, schreiben Sie einen einzigen gültigen JSON-Wert (ein Objekt, Array, String, Number, Boolean oder null) und speichern Sie mit der Erweiterung .json. Das ist der ganze Vorgang —— kein Header, keine Schema-Deklaration, kein verpflichtender Kodierungsmarker außer UTF-8. Programme lesen sie als JSON, sobald sie die Erweiterung erkennen. Ein kleines json file example: { "name": "Ada", "active": true }.
Was ist das JSON-Format? (und die verwandte Suche why files are stored in json format): das JSON-Format ist ein kleines, sprachunabhängiges Textformat für Daten —— Schlüssel, Werte, Arrays und Objekte mit einem festen Set von Literal-Typen. Dateien werden in diesem Format gespeichert, weil dasselbe Dokument von Python, Go, Java, JavaScript, Rust und Datenbanken ohne Übersetzung gelesen werden kann —— JSON ist der kleinste gemeinsame Nenner zum Verschieben strukturierter Daten zwischen Systemen.
// users.json
[
{ "id": 1, "name": "Alice", "role": "admin" },
{ "id": 2, "name": "Bob", "role": "editor" }
]Häufige JSON-Dateien, die Sie wahrscheinlich schon gesehen haben:
package.json—— Metadaten und Abhängigkeiten eines Node.js-Projektstsconfig.json—— Konfiguration des TypeScript-Compilerssettings.json—— VS-Code-Benutzereinstellungenmanifest.json—— Browser-Extension- oder PWA-Manifest
Was ist das JSON-Datenformat?
Das JSON-Datenformat hat einige strenge Regeln, die es vom JavaScript-Code unterscheiden, der ihm ähnelt:
- Alle Schlüssel müssen Strings in doppelten Anführungszeichen sein.
{ name: "Alice" }ist ein JavaScript-Objektliteral, kein JSON. - Strings müssen doppelte Anführungszeichen verwenden.
{ "name": 'Alice' }ist kein gültiges JSON. - Keine Trailing Commas.
{ "a": 1, }ist kein gültiges JSON. - Keine Kommentare.
// commentund/* block comment */sind in JSON nicht erlaubt. - Kein
undefined. JavaScriptsundefinedhat keine JSON-Entsprechung. Verwenden Sie stattdessennull.
JSON vs XML: warum JSON gewann (xml vs json)
Ist JSON dasselbe wie XML? Nein —— beide transportieren strukturierte Daten, aber die beiden Formate unterscheiden sich in Form, Größe und Maschinerie. Bevor sich JSON durchsetzte, war XML das Standard-Datenaustauschformat. Dieselben Daten in beiden:
<!-- XML -->
<user>
<name>Alice</name>
<age>30</age>
</user>
// JSON
{ "name": "Alice", "age": 30 }JSON ist kompakter, leichter von Menschen zu lesen und in JavaScript ohne Drittbibliothek nativ parsbar. Für die meisten Anwendungsfälle —— API-Antworten, Konfiguration, Messaging —— benötigt JSON deutlich weniger Bandbreite und weniger Code als XML.
Wo JSON verwendet wird
- REST-APIs: der Header
Content-Type: application/jsonkennzeichnet praktisch jede moderne Web-API-Antwort. - Konfigurationsdateien:
package.json,tsconfig.json,.eslintrc.json, AWS-CloudFormation-Templates. - Datenbanken: PostgreSQL, MySQL, MongoDB und DynamoDB unterstützen das native Speichern und Abfragen von JSON-Spalten oder -Dokumenten.
- Logdateien: strukturiertes Logging (mit JSON Lines) macht Daten von Maschinen wie Elasticsearch parsbar.
- Interprozesskommunikation: Microservices, Nachrichten-Queues (Kafka, RabbitMQ) und Serverless-Funktionen verwenden JSON als Standard-Payload-Format.
JSON in Datenbanken
Die meisten modernen Datenbanken können JSON direkt speichern und abfragen, sodass ein Dokument nicht in einem separaten Document-Store leben muss, um seine Struktur zu behalten:
- PostgreSQL —— zwei Typen:
jsonspeichert den exakten Text;jsonbspeichert eine indexierbare Binärdarstellung. Abfragen mit->/->>für Felder und@>für Containment; indexieren Sie heiße Pfade mit einem GIN-Index auf derjsonb-Spalte. - MongoDB —— Dokumente sind JSON-artig (BSON auf der Platte). Feld-Indizes und vollständige Aggregations-Pipelines arbeiten direkt auf der Dokumentform.
- SQLite —— die JSON1-Erweiterung (in modernem SQLite integriert) bietet
json_extract,json_eachund indexierte generierte Spalten aus JSON-Feldern. - MySQL —— ein nativer
JSON-Spaltentyp plus Pfadausdrücke undJSON_TABLE, um JSON-Werte wie Zeilen zu joinen.
Zwei praktische Erinnerungen für alle: Große Ganzzahlen können beim Durchgang durch den Client-Treiber an Präzision verlieren, und die JSON-Spezifikation definiert keine kanonische Schlüsselreihenfolge —— wenn Sie deterministische Vergleiche oder Hashing brauchen, verwenden Sie RFC 8785 (JCS).
Häufige JSON-Fehler
Sogar erfahrene Entwickler schreiben ungültiges JSON. Die häufigsten Fehler:
- Trailing Commas nach dem letzten Element
- Einfache statt doppelter Anführungszeichen
- Unzitierte Schlüssel
- JavaScript-Kommentare im JSON
- Python-artige Werte wie
True,False,None
Wenn Ihr JSON nicht parst, reparieren Sie es sofort online —— das Tool behebt diese Probleme automatisch und zeigt Ihnen genau, was sich geändert hat.
JSON im Code parsen
Alle großen Sprachen bringen eingebaute JSON-Unterstützung mit:
// JavaScript
const obj = JSON.parse('{"name":"Alice","age":30}');
console.log(obj.name); // "Alice"
# Python
import json
obj = json.loads('{"name":"Alice","age":30}')
print(obj['name']) # Alice
# Go
import "encoding/json"
var obj map[string]interface{}
json.Unmarshal([]byte(`{"name":"Alice","age":30}`), &obj)Wie man eine JSON-Datei in Python liest (oder read json file in python): verwenden Sie json.load(open('data.json')) für einen Dateipfad oder json.loads(text), wenn das JSON bereits ein String ist. Beide werfen json.JSONDecodeError bei Syntaxfehlern.
Die Wahl von JSON gegenüber XML in modernen Systemen läuft meist auf Bytes über das Netz und Parser-Support hinaus —— alle Sprachen unterstützen JSON nativ, während XML üblicherweise eine Drittbibliothek braucht.
Häufige JSON-Varianten, denen Sie begegnen werden
Striktes JSON ist die Basislinie, aber einige eng verwandte Dialekte tauchen regelmäßig auf:
- JSONC (JSON mit Kommentaren) —— JSON, das
//- und/* */-Kommentare und Trailing Commas erlaubt.tsconfig.jsonund VS Codessettings.jsonverwenden es. Standard-Parser lehnen es ab; verwenden Sie einen JSONC-bewussten Parser oder entfernen Sie die Kommentare zuerst. - NDJSON / JSON Lines —— ein JSON-Wert pro Zeile, getrennt durch
\n. Verwendet für Streaming-Logs, ML-Datasets und Bulk-APIs. Parsen Sie jede Zeile mitJSON.parse, nicht die ganze Datei. - JSON Pointer (RFC 6901) —— eine Pfadsyntax zum Adressieren eines Werts in einem Dokument, z. B.
/users/0/name. Es ist das Pfadformat, das JSON Patch und$refin JSON Schema verwenden.
Häufig gestellte Fragen
Wofür steht JSON?
JSON steht für JavaScript Object Notation. Trotz des Namens ist es sprachunabhängig —— alle großen Sprachen können es lesen und schreiben —— und es wird durch RFC 8259 und ECMA-404 definiert.
Welche Datentypen gibt es in JSON?
Sechs: String, Number, Boolean, null, Objekt und Array. Kein separater Integer-Typ, kein Date-Typ, kein undefined. Siehe JSON-Format-Beispiele für jeden im Kontext.
Ist JSON dasselbe wie ein JavaScript-Objekt?
Nein. JSON ist ein Textformat mit strengen Regeln (Schlüssel in doppelten Anführungszeichen, keine Trailing Commas, keine Kommentare); ein JavaScript-Objektliteral ist viel permissiver Code. Siehe JSON vs JavaScript-Objekte.
Wie prüfe ich, dass ein JSON gültig ist?
Parsen Sie es mit JSON.parse() (wirft bei ungültiger Eingabe) oder folgen Sie Wie man JSON validiert und führen Sie es durch einen Validator. Um Struktur und Typen zu erzwingen, beschreiben Sie es mit JSON Schema.
Werkzeuge zum Arbeiten mit JSON
- JSON Fix —— validiert, repariert und formatiert ungültiges JSON sofort
- Was ist JSON Schema? —— Struktur von JSON-Daten beschreiben und validieren
- JSON formatieren —— Pretty-Print in JavaScript, Python, Kommandozeile oder Browser
- JSON-Format-Beispiele —— kopierbare Beispiele für jeden Datentyp und realen Muster
- JSON Diff —— zwei JSON-Dokumente vergleichen und sehen, was sich geändert hat
- YAML zu JSON —— YAML-Konfiguration in JSON-Format konvertieren