Was ist ein JSON-Dokument?

Strukturierte Datendatei mit Schlüssel-Wert-Paaren, Arrays, Strings, Zahlen, Booleans, null. Lingua franca von APIs, Configs, Datenbanken und…

Was ist ein JSON-Dokument?

Ein JSON-Dokument ist ein Stück strukturierter Daten, formatiert in JavaScript Object Notation (JSON) — ein leichtgewichtiges textbasiertes Format, das Menschen lesen und Maschinen parsen können. JSON ist die Lingua Franca des Datenaustauschs im modernen Web geworden: APIs geben JSON zurück, Konfigurationsdateien nutzen JSON, Document-Datenbanken speichern JSON, Build-Tools akzeptieren JSON, Deployment-Manifeste nutzen JSON. Wenn du 2026 Software anfasst, fasst du ständig JSON-Dokumente an.

Trotz des JavaScripts in seinem Namen ist JSON sprach-unabhängig. Python, Go, Rust, Java, C#, PHP, Ruby — jede moderne Sprache hat eingebautes oder nahezu Standard-JSON-Parsing. Das Format ist in RFC 8259 (und ECMA-404) beschrieben, was es zu einem der stabilsten Datenformate in aktueller Nutzung macht.

Die sechs JSON-Werttypen

Ein JSON-Dokument ist aus genau diesen sechs Typen aufgebaut — nicht mehr, nicht weniger:

  • Object: { "key": value, ... } — ungeordnete Menge von Schlüssel-Wert-Paaren. Schlüssel sind immer Strings.
  • Array: [ value, value, ... ] — geordnete Liste von Werten.
  • String: "hello" — UTF-8-Text in doppelten Anführungszeichen. Forward Slashes können optional escaped werden; Backslashes und Anführungszeichen müssen escaped werden.
  • Number: 42, 3.14, 1e10, -7 — Dezimalzahlen. JSON unterscheidet NICHT zwischen Int und Float auf Format-Ebene.
  • Boolean: true oder false — Kleinbuchstaben, keine Anführungszeichen.
  • Null: null — explizit das Fehlen eines Werts.

Das ist alles. Keine Daten, keine UUIDs, keine binären Blobs, keine Kommentare. Alles darüber hinaus sind Konventionen, die obendrauf gelegt werden (ISO-8601-Daten als Strings, Base64-kodierte Binärdaten als Strings etc.).

Ein kanonisches JSON-Dokument

{
  "id": "order_42",
  "customer": {
    "name": "Alice",
    "email": "alice@example.com",
    "verified": true
  },
  "items": [
    { "sku": "WIDGET-1", "qty": 2, "price": 9.99 },
    { "sku": "GIZMO-7", "qty": 1, "price": 19.95 }
  ],
  "total": 39.93,
  "shipped_at": null,
  "tags": ["priority", "gift"]
}

Jeder Wert ist einer der sechs Typen. Die Struktur kann beliebig tief verschachtelt werden, und die gleiche Form wird in jeder Sprache mit einer JSON-Library identisch parsen.

JSON in Production: wo du es triffst

  • REST-APIs — Request- und Response-Bodies sind meist JSON. Content-Type application/json.
  • Konfigurationsdateienpackage.json (Node), tsconfig.json (TypeScript), composer.json (PHP), cargo.toml (Rust nutzt TOML, aber die meisten JS-nahen Ökosysteme sind JSON).
  • NoSQL-Datenbanken — MongoDB speichert BSON (Binary JSON). Couchbase, DynamoDB, Firestore exponieren alle Document-geformte APIs.
  • Logging — Structured Logging gibt ein JSON-Objekt pro Log-Zeile aus (Newline-Delimited JSON, NDJSON).
  • JSON Schema — beschreibt JSON-Formen für Validierung. Breit genutzt in OpenAPI, AJV (JS-Validator) und vielen Tooling-Pipelines.
  • JSON-LD — JSON für Linked Data. Genutzt für SEO-Structured-Data (FAQPage, BreadcrumbList, Article), das Format, das Google für Rich Snippets nutzt.
  • Cloud-Manifeste — AWS CloudFormation, Kubernetes-Resources (wenn via JSON authoring), Terraform-State-Files.

JSON-Fallen, die jeder irgendwann trifft

  • Keine Trailing Commas erlaubt. {"a":1,} ist ungültiges JSON. JavaScript-Objekte erlauben Trailing Commas; JSON nicht. Häufige Quelle von "mein JSON parst nicht"-Frustration.
  • Keine Kommentare. Reines JSON hat kein // oder /* */. Workarounds: JSON5, JSONC oder Kommentare einfach als "_comment"-Keys einbetten (und daran denken, sie vor strikten Parsern zu strippen).
  • Zahlen können Präzision verlieren. JavaScripts JSON.parse speichert alle Zahlen als IEEE-754-Doubles. Integer größer als 2^53-1 (9.007.199.254.740.991) verlieren Präzision. Für 64-Bit-IDs aus Datenbanken serialisiere als Strings.
  • Daten sind kein Typ. Serialisiere immer als ISO-8601-Strings ("2026-05-07T08:22:00Z") oder Unix-Timestamps (Zahlen). Beide Enden einigen sich, welches.
  • Doppelte Keys sind technisch gültig, aber Undefined Behavior. Die meisten Parser nehmen den letzten Wert. Schreibe kein JSON mit doppelten Keys.
  • UTF-8-only. JSON ist UTF-8 by Default. Andere Encodings (UTF-16, Latin-1) verursachen Probleme — konvertiere zu UTF-8 an der Grenze.
  • Whitespace zählt nicht für Parsing, aber für Diffing. Pretty-printed JSON-Diffs sind weitaus lesbarer als minifizierte. Nutze einen Formatter (jq ., JSON.stringify(x, null, 2)) vor Commits.
  • Feld-Reihenfolge ist nicht signifikant. Zwei JSON-Dokumente mit den gleichen Keys in unterschiedlicher Reihenfolge sind semantisch identisch. Tools wie jq -S sortieren Keys für kanonischen Vergleich.

JSON vs. andere Datenformate

FormatAm besten fürTradeoffs
JSONAPIs, Configs, Document-DatenbankenVerbose, keine Kommentare, keine Daten
YAMLMensch-editierte Configs (CI, K8s)Whitespace-sensitiv, Edge-Cases
TOMLApp-Configs (Rust, Python)Weniger Ökosystem-Unterstützung
XMLDocument-Markup, Legacy-EnterpriseVerbose, komplexes Parsing
Protocol BuffersHigh-Throughput-RPC (gRPC)Binär, erfordert Schema
MessagePackKompaktes JSON-äquivalentes BinärKleiner, weniger debuggbar
BSONMongoDBs interner StorageFügt Binär-, Datums-Typen zu JSON hinzu

FAQ: JSON-Dokumente

Was ist der Unterschied zwischen JSON und JavaScript-Objekten?

JSON ist eine strikte Untermenge der JavaScript-Object-Literal-Syntax. Reines JSON erfordert doppelt-quoted Keys; JavaScript erlaubt unquoted oder single-quoted Keys. JSON erlaubt keine Funktionen, kein undefined, keine Kommentare. JSON.parse validiert die strikte Form.

Wie validiere ich JSON?

Online: jsonlint.com. CLI: jq . file.json (parst + pretty-printed, Fehler bei ungültigem). Für Schema-Validierung: AJV (JS), python-jsonschema, JSON Schema Validator.

Wie groß kann ein JSON-Dokument sein?

Das Format impliziert kein Limit. Praktische Limits kommen von Parsern (manche allokieren das volle Dokument im RAM) und APIs (Cloudflare 100MB, AWS API Gateway 10MB, die meisten CDNs ~10MB). Für größere Daten nutze NDJSON-Streaming oder wechsle zu Protocol Buffers/Parquet.

JSON vs. JSON Lines (NDJSON)?

NDJSON ist ein gültiges JSON-Dokument pro Zeile. Genutzt für Streaming und Append-Only-Logs — du kannst Zeile für Zeile parsen, ohne alles zu laden. Standard-JSON-Arrays erfordern, das ganze Array zuerst zu laden.

Was ist JSON Schema?

Ein JSON-basiertes Format zur Beschreibung, wie ein gültiges JSON-Dokument aussieht (erforderliche Felder, Typen, Einschränkungen). Genutzt für API-Validierung, IDE-Autocompletion (suche deine package.json in VS Code) und Config-Validierung.

Sollte ich JSON oder YAML für Configs nutzen?

Für maschinen-generierte Configs (Build-Outputs, Locks): JSON. Für handgeschriebene Configs, wo Lesbarkeit und Kommentare zählen (CI-Workflows, K8s-Manifeste): YAML. Die Linie ist unscharf und ökosystem-abhängig.

Warum hat JSON keinen Datums-Typ?

Weil die Original-Spec minimal war und JavaScript-Daten Timezone-Komplikationen haben. Die Konvention ist, Daten als ISO-8601-Strings zu serialisieren; moderne Parser können sie via Custom-Logik als Date-Objekte revive.

Wie LoadFocus zu JSON in Production steht

JSON-Dokumente bewegen sich durch jede Schicht moderner Web-Apps — Request-Payloads, Response-Bodies, Log-Einträge. LoadFocus-API-Lasttest validiert, dass JSON-Endpoints realistische konkurrente Payloads ohne Serialisierungs-Bottlenecks handhaben. API-Monitoring validiert Response-Formen via JSON-Schema-Assertions und fängt Drift, wenn eine API still ein Feld droppt.

Wie schnell ist Ihre Website?

Steigern Sie ihre Geschwindigkeit und SEO nahtlos mit unserem kostenlosen Geschwindigkeitstest.

Kostenloser Websitespeed-Test

Analysieren Sie die Ladegeschwindigkeit Ihrer Website und verbessern Sie ihre Leistung mit unserem kostenlosen Seitengeschwindigkeits-Checker.

×