← Alle Artikel

Was ist JSON? Ein vollständiger Leitfaden zu Format, Syntax und Dateien

JSON (JavaScript Object Notation) ist das universelle Datenaustauschformat. Lerne die sechs Datentypen, die Grammatikregeln, die JSON strikt machen, wo .json-Dateien verwendet werden und wie man JSON in jeder Sprache parst.

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.5e10

5. Boolean

Genau true oder false, in Kleinbuchstaben. JSON akzeptiert nicht True, False, yes, no, 1 oder 0 als Booleans.

true
false

6. Null

Repräsentiert das Fehlen eines Werts. Geschrieben als null in Kleinbuchstaben.

null

Was 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-Projekts
  • tsconfig.json —— Konfiguration des TypeScript-Compilers
  • settings.json —— VS-Code-Benutzereinstellungen
  • manifest.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.// comment und /* block comment */ sind in JSON nicht erlaubt.
  • Kein undefined. JavaScripts undefined hat keine JSON-Entsprechung. Verwenden Sie stattdessen null.

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/json kennzeichnet 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: json speichert den exakten Text; jsonb speichert eine indexierbare Binärdarstellung. Abfragen mit -> / ->> für Felder und @> für Containment; indexieren Sie heiße Pfade mit einem GIN-Index auf der jsonb-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_each und indexierte generierte Spalten aus JSON-Feldern.
  • MySQL —— ein nativer JSON-Spaltentyp plus Pfadausdrücke und JSON_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.json und VS Codes settings.json verwenden 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 mit JSON.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 $ref in 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