Füge links dein JSON Schema und rechts die API-Antwort ein. Das Tool prüft automatisch Datentypen, Pflichtfelder, Regex-Patterns und mehr – der essentielle Schritt für API-Vertragstests und Frontend-Backend-Konsistenz.
Das Tool folgt dem JSON-Schema-Draft-07-Standard. Unterstützt werden: Typprüfung (type), Pflichtfelder (required), Eigenschaften (properties), Regex-Patterns (pattern), Formatvalidierung (format), Enum-Werte (enum) und Kombinationslogik (allOf, anyOf, oneOf, not).
Das Tool generiert einen detaillierten Fehlerbericht mit dem genauen JSON-Pfad, dem Fehlertyp (z. B. Typkonflikt oder fehlendes Pflichtfeld) und der betroffenen Schema-Regel – damit findest du Probleme sofort.
Vor dem Datenimport oder der ETL-Verarbeitung kannst du prüfen, ob Daten dem erwarteten Schema entsprechen. So fängst du fehlerhafte Datensätze frühzeitig ab und stellst die Datenqualität sicher.
Absolut. Die gesamte Validierung läuft lokal in deinem Browser. Weder API-Datenstrukturen noch sensible Geschäftsdaten werden an einen Server gesendet.
Die folgende Tabelle listet die am häufigsten verwendeten Validierungsschlüsselwörter der JSON Schema-Spezifikation auf, nach Kategorien geordnet zum schnellen Nachschlagen.
| Schlüsselwort | Beschreibung |
|---|---|
| Grundlegende Typen | |
type | Gibt den Datentyp an: string, number, integer, boolean, array, object, null. Unterstützt einzelnen Typ oder Array von Typen. |
| Objektvalidierung | |
properties | Definiert Sub-Schemas für Objekteigenschaften. |
required | String-Array, das angibt, welche Eigenschaften erforderlich sind. |
additionalProperties | Steuert, ob zusätzliche Eigenschaften erlaubt sind, die nicht in properties definiert sind; kann false oder ein Schema sein. |
propertyNames | Schema, dem Eigenschaftsnamen entsprechen müssen (verwendet häufig pattern-Regex). |
minProperties | Mindestanzahl von Eigenschaften, die ein Objekt enthalten muss. |
maxProperties | Maximalanzahl von Eigenschaften, die ein Objekt enthalten darf. |
| Enums & Konstanten | |
enum | Array erlaubter Werte; Daten müssen genau einem Wert aus dem Array entsprechen. |
const | Konstanter Wert; Daten müssen diesem Wert streng entsprechen. |
| Numerische Einschränkungen | |
minimum | Minimaler numerischer Wert (einschließlich). |
maximum | Maximaler numerischer Wert (einschließlich). |
exclusiveMinimum | Wert muss streng größer sein (ausschließlich). |
exclusiveMaximum | Wert muss streng kleiner sein (ausschließlich). |
multipleOf | Wert muss ein Vielfaches der angegebenen Zahl sein. |
| Zeichenketten-Einschränkungen | |
minLength | Minimale Zeichenkettenlänge. |
maxLength | Maximale Zeichenkettenlänge. |
pattern | Regulärer Ausdruck; Zeichenkette muss diesem Muster entsprechen. |
format | Semantische Formatvalidierung: email, uri, date-time, uuid, ipv4, ipv6, hostname, etc. |
| Array-Einschränkungen | |
items | Schema für Array-Elemente (einzelnes Schema gilt für alle Elemente). |
minItems | Mindestanzahl von Array-Elementen. |
maxItems | Maximalanzahl von Array-Elementen. |
uniqueItems | Gibt an, ob Array-Elemente eindeutig sein müssen. |
contains | Mindestens ein Array-Element muss diesem Schema entsprechen. |
| Kombinatorische Logik | |
allOf | Daten müssen allen Sub-Schemas entsprechen (logisches UND). |
anyOf | Daten müssen mindestens einem Sub-Schema entsprechen (logisches ODER). |
oneOf | Daten müssen genau einem Sub-Schema entsprechen (exklusives ODER). |
not | Daten dürfen diesem Schema NICHT entsprechen (logisches NICHT). |
| Bedingte Validierung | |
if | Bedingtes Schema; wenn Daten if entsprechen, müssen sie then erfüllen; andernfalls müssen sie else erfüllen. |
then | Schema, das erfüllt werden muss, wenn die if-Bedingung zutrifft. |
else | Schema, das erfüllt werden muss, wenn die if-Bedingung nicht zutrifft. |
| Referenzen & Wiederverwendung | |
$ref | Verweist auf andere Schema-Definitionen; unterstützt lokale Referenzen (#/$defs/xxx) und Remote-Referenzen. |
$defs | Definiert wiederverwendbare Sub-Schemas (Draft 2019-09+; ältere Versionen verwenden definitions). |
definitions | Schlüsselwort für wiederverwendbare Sub-Schemas in Draft 4-7. |
| Metadaten | |
title | Schema-Titel (Annotation, nicht validiert). |
description | Schema-Beschreibung (Annotation, nicht validiert). |
default | Standardwert (Annotation, nicht validiert). |
examples | Array von Beispielwerten (Annotation, nicht validiert). |
$schema | Gibt die verwendete JSON Schema-Spezifikationsversion an. |
| Abhängigkeiten | |
dependentRequired | Eigenschaftsabhängigkeit: Wenn eine Eigenschaft vorhanden ist, müssen auch andere Eigenschaften vorhanden sein (Draft 2019-09+). |
dependencies | Abhängigkeitsschlüsselwort in Draft 4-7, das sowohl Eigenschafts- als auch Schema-Abhängigkeiten abdeckt. |
JSON Schema hat sich durch mehrere Draft-Versionen weiterentwickelt. Draft 7 ist derzeit die am weitesten verbreitete Version; Draft 2020-12 ist die neueste stabile Version.
| Funktion | Draft 4 | Draft 6 | Draft 7 | 2019-09 | 2020-12 |
|---|---|---|---|---|---|
| type-Validierung | ✓ | ✓ | ✓ | ✓ | ✓ |
| Pflichtfelder | ✓ | ✓ | ✓ | ✓ | ✓ |
| enum/const | ✓ enum | ✓ | ✓ | ✓ | ✓ |
| minimum/maximum | ✓ | ✓ | ✓ | ✓ | ✓ |
| exclusiveMinimum/Maximum | boolean | number | number | number | number |
| multipleOf | ✓ | ✓ | ✓ | ✓ | ✓ |
| minLength/maxLength | ✓ | ✓ | ✓ | ✓ | ✓ |
| pattern-Regex | ✓ | ✓ | ✓ | ✓ | ✓ |
| format-Validierung | ✓ | ✓ | ✓ | nur Annotation standardmäßig | nur Annotation standardmäßig |
| items-Array | ✓ | ✓ | ✓ | ✓ | ✓ |
| contains | ✗ | ✓ | ✓ | ✓ | ✓ |
| minItems/maxItems | ✓ | ✓ | ✓ | ✓ | ✓ |
| uniqueItems | ✓ | ✓ | ✓ | ✓ | ✓ |
| additionalProperties | ✓ | ✓ | ✓ | ✓ | ✓ |
| propertyNames | ✗ | ✓ | ✓ | ✓ | ✓ |
| allOf/anyOf/oneOf/not | ✓ | ✓ | ✓ | ✓ | ✓ |
| if/then/else | ✗ | ✗ | ✓ | ✓ | ✓ |
| $ref-Referenzen | ✓ | ✓ | ✓ | ✓ | ✓ |
| $defs-Wiederverwendung | definitions | definitions | definitions | $defs | $defs |
| dependentRequired | ✗ | ✗ | ✗ | ✓ | ✓ |
| prefixItems-Tupel | Array-Form | Array-Form | Array-Form | Array-Form | prefixItems |
| unevaluatedProperties | ✗ | ✗ | ✗ | ✓ | ✓ |
| $dynamicRef/$anchor | ✗ | ✗ | ✗ | ✓ $recursiveRef | ✓ dynamicRef |