Guide 27 Mar 2026 12 Min. Lesezeit

JSON Schema Validierung: Der vollstandige Leitfaden zum Definieren und Validieren von JSON-Daten

Erfahren Sie, wie JSON Schema als Vertrag fuer Ihre Daten funktioniert -- von Grundtypen und Pflichtfeldern bis hin zu Formatvalidierung, Draft-Versionen und realen Anwendungsfaellen fuer APIs und Konfigurationsdateien.

JSON Schema Validation Guide

Was ist JSON Schema?

JSON Schema ist eine deklarative Sprache, mit der Sie die Struktur, den Inhalt und die Einschraenkungen eines JSON-Dokuments beschreiben koennen. Stellen Sie es sich als einen Vertrag zwischen einem Datenproduzenten und einem Datenkonsumenten vor. Der Produzent sagt "Ich werde immer ein Objekt mit einem name-String und einem age-Integer senden", und der Konsument kann ueberpruefen, ob jeder eingehende Payload tatsaechlich diesem Versprechen entspricht.

Das ist wichtig, weil JSON selbst kein Schema hat. Jeder gueltige JSON-Wert ist voellig legal. Diese Freiheit ist wunderbar fuer schnelles Prototyping, wird aber zum Problem, sobald zwei Systeme sich darueber einigen muessen, wie Daten aussehen sollen.

Warum JSON Schema fuer APIs wichtig ist

REST-APIs kommunizieren ueber JSON-Payloads, und jeder Endpunkt hat eine implizite Form. JSON Schema macht diese Form explizit und maschinenlesbar. Mit einem Schema koennen Sie:

  • Anfragen validieren auf dem Server, bevor sie Ihre Geschaeftslogik erreichen.
  • Antworten validieren in Integrationstests, um brechende Aenderungen zu erkennen.
  • Dokumentation generieren -- Tools wie Swagger/OpenAPI verwenden JSON Schema als Rueckgrat ihrer Typdefinitionen.
  • Code generieren -- Schema-zu-TypeScript, Schema-zu-Go-Struct-Tools eliminieren manuelle Typdefinitionen.
Kernaussage: JSON Schema ist nicht nur ein Validierungstool. Es ist eine einzige Wahrheitsquelle, die Dokumentation, Codegenerierung, Tests und Laufzeitpruefungen antreibt -- alles aus einer Datei.

JSON Schema Grundlagen

Jedes JSON Schema ist selbst ein JSON-Objekt. Das einfachste moegliche Schema ist ein leeres Objekt {}, das jedes gueltige JSON akzeptiert.

Primitive Typen

Das type-Schluesselwort ist das Fundament. JSON Schema erkennt sechs primitive Typen:

Typ JSON-Beispiel Hinweise
string"hallo"Textwerte. Einschraenkbar mit minLength, maxLength, pattern.
number3.14Beliebiger numerischer Wert. Verwenden Sie minimum, maximum, multipleOf.
integer42Nur ganze Zahlen. Gleiche Einschraenkungen wie number.
booleantrueNur true oder false.
object{"key": "wert"}Schluessel-Wert-Paare. Definiert mit properties, required, additionalProperties.
array[1, 2, 3]Geordnete Listen. Verwenden Sie items, minItems, maxItems, uniqueItems.
nullnullDas Fehlen eines Werts. Oft mit einem anderen Typ kombiniert.

Eigenschaften und Pflichtfelder

Fuer Objekte definiert das properties-Schluesselwort, welche Schluessel erwartet werden. Das required-Schluesselwort listet auf, welche davon vorhanden sein muessen.

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "name": { "type": "string", "minLength": 1 },
    "email": { "type": "string", "format": "email" },
    "age": { "type": "integer", "minimum": 0 }
  },
  "required": ["name", "email"]
}

Zusaetzliche Eigenschaften kontrollieren

"additionalProperties": false macht das Schema strikt -- nur die aufgelisteten Schluessel sind erlaubt.

Achtung: Wenn Sie additionalProperties: false zusammen mit allOf verwenden, koennen in anderen Sub-Schemas definierte Eigenschaften abgelehnt werden. Dies ist eine der haeufigsten Fallen in JSON Schema.

Formatvalidierung

Das format-Schluesselwort bietet semantische Validierung ueber grundlegende Typen hinaus.

Eingebaute Formate

Format Beispielwert Anwendungsfall
date-time2026-03-27T10:30:00ZISO 8601 Zeitstempel fuer Events und Logs
date2026-03-27Kalenderdaten ohne Uhrzeit
email[email protected]Kontaktformulare, Benutzerregistrierung
urihttps://example.com/apiWebhook-URLs, Ressourcenlinks
uuid550e8400-e29b-41d4-a716-446655440000Eindeutige Bezeichner, Primaerschluessel
ipv4192.168.1.1Netzwerkkonfiguration, Serveradressen

Format als Annotation vs. Assertion

Standardmaessig ist format eine Annotation, keine Assertion. In Draft 2020-12 muessen Sie die Format-Assertion explizit aktivieren.

Praxistipp: Kombinieren Sie format immer mit einem pattern-Regex, wenn strikte Validierung fuer Ihren Anwendungsfall kritisch ist.

Draft-Versionen: Draft-07 vs 2020-12

Die zwei Draft-Versionen, denen Sie am haeufigsten begegnen, sind Draft-07 und Draft 2020-12.

Wichtige Unterschiede

Merkmal Draft-07 Draft 2020-12
prefixItemsNicht verfuegbarErsetzt Tuple-Validierung
$dynamicRefNicht verfuegbarNeu -- dynamische Schema-Referenzen
unevaluatedPropertiesNicht verfuegbarLoest das additionalProperties + allOf Problem
BibliotheksunterstuetzungAusgezeichnetGut und wachsend

Welche Version sollten Sie waehlen?

Waehlen Sie Draft-07, wenn Ihr Oekosystem es bereits verwendet oder Sie maximale Kompatibilitaet benoetigen.

Waehlen Sie Draft 2020-12, wenn Sie ein neues Projekt ohne Legacy-Einschraenkungen starten.

Fazit

Fuer die meisten neuen Projekte im Jahr 2026 ist Draft 2020-12 die bessere Standardwahl.

So verwenden Sie unseren JSON Schema Generator

Unser kostenloser JSON Schema Generator nimmt jeden JSON-Payload und erzeugt automatisch ein gueltiges Schema. Alles laeuft in Ihrem Browser.

Schritt-fuer-Schritt-Anleitung

  1. Oeffnen Sie das JSON Schema Generator-Tool.
  2. Fuegen Sie Ihr JSON in den Eingabebereich ein.
  3. Klicken Sie auf Generieren und das Tool analysiert jedes Feld, leitet Typen ab und erkennt Formate.
  4. Ueberpruefen Sie die Ausgabe -- das generierte Schema erscheint im Ausgabebereich.
  5. Wechseln Sie zum Validieren-Tab, um Ihr Schema gegen neue JSON-Payloads zu testen.
  6. Kopieren Sie das Schema mit einem Klick und integrieren Sie es in Ihr Projekt.
Datenschutzhinweis

Unser JSON Schema Generator laeuft 100% in Ihrem Browser. Ihre JSON-Daten, generierten Schemas und Validierungsergebnisse verlassen nie Ihr Geraet.

Generieren Sie Ihr JSON Schema sofort

Fuegen Sie einen beliebigen JSON-Payload ein und erhalten Sie ein einsatzbereites Schema mit Typinferenz, Pflichtfeldern und Formaterkennung -- 100% in Ihrem Browser.