Der beste Weg, JSON zu verstehen, ist Beispiele zu lesen. Dieser Guide führt das JSON-Format von Grund auf vor —— einfache Objekte, verschachtelte Strukturen, Arrays, gemischte Typen —— und zeigt dann reale JSON-Muster, denen Sie in APIs, Konfigurationsdateien und Datenbanken begegnen. Jedes Beispiel ist gültiges, kopierbares JSON.
Verwenden Sie sie als Beispiel-JSON-Datei für Tests, Fixtures oder Dokumentation —— jeder Schnipsel unten ist ein echtes JSON-Beispiel, das Sie mit .json-Endung speichern und direkt laden können.
Das einfachste JSON-Beispiel
Jeder gültige JSON-Wert ist ein vollständiges JSON-Dokument. Die einfachsten JSON-Dokumente sind Primitive:
"hello" // ein String
42 // eine Zahl
true // ein Boolean
null // nullIn der Praxis ist fast jedes JSON-Dokument, das Ihnen begegnet, entweder ein Objekt oder ein Array.
Beispiel eines JSON-Objekts
Ein JSON-Objekt ist eine Sammlung von Schlüssel-Wert-Paaren. Schlüssel müssen Strings in doppelten Anführungszeichen sein. Werte können jeden JSON-Typ haben.
{
"id": 42,
"name": "Alice Chen",
"email": "alice@example.com",
"age": 30,
"active": true,
"score": 98.6,
"nickname": null
}Hinweis: Die Schlüsselreihenfolge in JSON-Objekten ist nicht garantiert —— Parser können Schlüssel in beliebiger Reihenfolge zurückgeben.
Beispiel eines JSON-Arrays
Ein JSON-Array ist eine geordnete Liste von Werten. Elemente können verschiedene Typen haben und die Reihenfolge bleibt immer erhalten.
// Array von Strings
["apple", "banana", "cherry"]
// Array von Zahlen
[1, 2, 3, 4, 5]
// Gemischte Typen
[42, "hello", true, null, { "key": "value" }]
// Array von Objekten (häufig in API-Antworten)
[
{ "id": 1, "name": "Alice" },
{ "id": 2, "name": "Bob" },
{ "id": 3, "name": "Carol" }
]Beispiel für verschachteltes JSON
Objekte und Arrays lassen sich beliebig tief verschachteln. Daher kommt JSONs Ausdrucksstärke.
{
"user": {
"id": 1001,
"name": "Alice Chen",
"address": {
"street": "123 Main St",
"city": "San Francisco",
"state": "CA",
"zip": "94102"
},
"tags": ["premium", "early-adopter"],
"preferences": {
"notifications": {
"email": true,
"sms": false,
"push": true
},
"theme": "dark"
}
}
}JSON-Format-Beispiel: REST-API-Antwort
Eine typische paginierte API-Antwort sieht so aus:
{
"status": "success",
"data": {
"page": 1,
"per_page": 10,
"total": 47,
"total_pages": 5,
"items": [
{
"id": "prod_001",
"name": "Wireless Headphones",
"price": 89.99,
"currency": "USD",
"in_stock": true,
"categories": ["electronics", "audio"],
"rating": 4.7,
"reviews_count": 2341
},
{
"id": "prod_002",
"name": "USB-C Hub",
"price": 39.99,
"currency": "USD",
"in_stock": false,
"categories": ["electronics", "accessories"],
"rating": 4.2,
"reviews_count": 891
}
]
},
"meta": {
"request_id": "req_8f3a2c",
"timestamp": "2024-10-15T14:32:00Z"
}
}Beispiel einer JSON-Konfigurationsdatei
Konfigurationsdateien in JSON sind im JavaScript-Tooling üblich. Hier ist eine typische package.json-Struktur:
{
"name": "my-app",
"version": "1.0.0",
"description": "A sample application",
"main": "index.js",
"scripts": {
"start": "node index.js",
"test": "jest",
"build": "tsc"
},
"dependencies": {
"express": "^4.18.2",
"lodash": "^4.17.21"
},
"devDependencies": {
"typescript": "^5.0.0",
"jest": "^29.0.0"
},
"engines": {
"node": ">=18.0.0"
}
}JSON-Datenformat: Datum und Zeit
JSON hat keinen nativen Datumstyp. Daten werden als Strings dargestellt. ISO 8601 ist das universell akzeptierte Format:
{
"created_at": "2024-10-15T14:32:00Z", // UTC-Datetime
"updated_at": "2024-10-15T14:32:00+08:00", // mit Zeitzonenversatz
"birth_date": "1990-06-21", // nur Datum
"meeting_time": "09:00:00" // nur Uhrzeit
}Alternativ verwenden manche Systeme Unix-Zeitstempel (Sekunden seit der Epoche) als Zahlen:
{
"created_at": 1728999120,
"expires_at": 1761057600
}JSON mit optionalen und Null-Feldern
Verwenden Sie null für Felder, die existieren, aber keinen Wert haben. Lassen Sie Felder komplett weg, wenn sie optional und nicht vorhanden sind.
{
"id": 5,
"name": "Bob",
"email": "bob@example.com",
"phone": null, // existiert, aber nicht gesetzt
"company": "Acme Corp",
"title": null // existiert, aber nicht gesetzt
// "fax" ist komplett ausgelassen —— nicht zutreffend
}JSON-Fehlerbeispiele (und wie man sie behebt)
Das sind häufige JSON-Formatierungsfehler:
// ❌ Einfache Anführungszeichen (kein gültiges JSON)
{ 'name': 'Alice' }
// ✅ Fix: doppelte Anführungszeichen verwenden
{ "name": "Alice" }
// ❌ Unzitierter Schlüssel
{ name: "Alice" }
// ✅ Fix: Schlüssel zitieren
{ "name": "Alice" }
// ❌ Trailing Comma
{ "a": 1, "b": 2, }
// ✅ Fix: Trailing Comma entfernen
{ "a": 1, "b": 2 }
// ❌ JavaScript-Kommentar
{ "debug": true // Logging aktivieren }
// ✅ Fix: Kommentar entfernen
{ "debug": true }
// ❌ Python-Boolean
{ "active": True }
// ✅ Fix: Kleinbuchstaben verwenden
{ "active": true }Wenn Ihr JSON-String einen dieser Fehler enthält, fügen Sie ihn in JSON Fix ein, um ihn automatisch zu reparieren und zu formatieren.
JSON-Lines-Beispiel (NDJSON, jsonlines)
Für Streaming-Logs, ML-Datasets und Bulk-APIs ist die Konvention ein JSON-Wert pro Zeile, getrennt durch \n. Das Format hat zwei Namen —— jsonlines (von jsonlines.org) und NDJSON —— aber die Spec ist dieselbe:
{"event":"login","user":"ada","at":"2026-05-28T09:00:00Z"}
{"event":"view","user":"ada","page":"/dashboard"}
{"event":"logout","user":"ada","at":"2026-05-28T09:42:00Z"} Jede Zeile wird unabhängig geparst. Machen Sie nicht JSON.parse() auf die ganze Datei —— splitten Sie am Zeilenumbruch und parsen Sie zeilenweise.
OpenAPI-Antwort-Beispiel
Eine OpenAPI-Spec definiert Antworten mit einer JSON-Schema-ähnlichen Form:
{
"openapi": "3.1.0",
"paths": {
"/users/{id}": {
"get": {
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": ["id", "email"],
"properties": {
"id": { "type": "integer" },
"email": { "type": "string", "format": "email" }
}
}
}
}
}
}
}
}
}
}Nur-Datum- und Nur-Zeit-Beispiele
ISO 8601 definiert auch reine Datums- und reine Zeitformen —— nützlich, wenn die Tageszeit oder das Datum wirklich keine Rolle spielt:
{
"birth_date": "1815-12-10", // nur Datum
"office_hours": "09:00:00", // nur Uhrzeit
"started_at": "2026-05-28T09:00:00Z" // volles Datetime, zum Kontrast
}GeoJSON-Beispiel
GeoJSON ist ein Standardformat für geografische Daten auf JSON-Basis:
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-122.4194, 37.7749]
},
"properties": {
"name": "San Francisco",
"country": "US",
"population": 873965
}
}Häufig gestellte Fragen
Wie sieht ein Beispiel für gültiges JSON aus?
Das einfachste ist eine einzelne Primitive wie 42 oder "hello", aber die meisten realen JSON sind Objekte wie { "name": "Alice", "age": 30, "active": true } oder Arrays solcher Objekte.
Wie werden Daten in JSON dargestellt?
JSON hat keinen Datumstyp. Daten werden als Strings gespeichert —— ISO 8601 ("2024-10-15T14:32:00Z") ist die universelle Wahl —— oder als numerische Unix-Zeitstempel.
Wie repräsentiere ich einen fehlenden Wert in JSON?
Verwenden Sie null für ein Feld, das existiert, aber keinen Wert hat, und lassen Sie den Schlüssel ganz weg, wenn das Feld nicht zutrifft. JSON hat kein undefined.
Wie sieht verschachteltes JSON aus?
Objekte und Arrays können andere Objekte und Arrays in beliebiger Tiefe enthalten —— siehe die verschachtelten und REST-API-Beispiele oben. Für die zugrundeliegenden Regeln siehe Was ist JSON?
Probieren Sie diese Beispiele
Kopieren Sie eines der Beispiele oben und fügen Sie es in die folgenden Tools ein, um die Daten zu erkunden:
- JSON Fix —— JSON formatieren, validieren und reparieren
- JSON Diff —— zwei JSON-Beispiele nebeneinander vergleichen
- Was ist JSON? —— vollständiger Guide zu den sechs Datentypen und der JSON-Grammatik
- JSON formatieren —— JSON in JavaScript, Python, jq und Ihrem Browser pretty-printen
- JSON Stringify —— einen JSON-Wert in ein escaptes String-Literal umwandeln