Zum Hauptinhalt springen
Bethemesh

JSON-Schema validieren

Prüft JSON-Dokumente gegen ein JSON Schema und zeigt Fehler mit Pfad und Regel präzise an.

Dieses Widget einbetten

Passe die Darstellung an, prüfe die Vorschau und kopiere anschließend den Code.

Vorschau

Art des Einbettungscodes

Zu kopierender Code

Responsive und automatisch von Bethemesh in der Größe angepasst.

War dieses Werkzeug hilfreich?

Wie funktioniert dieses Tool?

Prüfe JSON-Daten anhand unterstützter Schemabedingungen und finde Fehler über Pfad und Schlüsselwort. Das erste Feld enthält Daten, das zweite das Schema. Gültiges JSON in beiden Feldern bestätigt noch keinen erfüllten Vertrag. Die Prüfung bleibt lokal und lädt keine entfernten Schemas. Die Implementierung deckt eine ausdrücklich begrenzte Teilmenge von JSON Schema 2020-12 ab, nicht sämtliche Erweiterungen.

Unterstützt werden type, const, enum, Zahlengrenzen und multipleOf. Zeichenketten nutzen minLength, maxLength und pattern. Arrays können minItems, maxItems, uniqueItems und ein einzelnes items-Schema verwenden. Für Objekte gelten properties, required, additionalProperties, minProperties und maxProperties. Auch allOf, anyOf, oneOf und not werden ausgewertet.

Das gesamte Schema wird vor den Daten geprüft, einschließlich aktuell ungenutzter Zweige. Falsch definierte unterstützte Bedingungen ergeben Schemafehler. $ref, $dynamicRef, prefixItems, contains, patternProperties, bedingte Abhängigkeiten, unevaluated-Regeln und if/then/else sind nicht implementiert. Ihre Anwesenheit führt zu einer ausdrücklichen Meldung statt irreführendem Erfolg.

format validiert in dieser Engine weder E-Mail-Adressen noch URLs oder Datumswerte. Annotationen wie title und description prüfen keine Werte. Wähle bei zusätzlichen Vokabularen oder Funktionen einen geeigneten Validator, statt Bedingungen nur für ein positives Ergebnis zu entfernen.

Zeichenkettenlängen zählen Unicode-Codepunkte, keine UTF-16-Einheiten oder visuell zusammengesetzten Zeichen. const, enum und uniqueItems ignorieren die Reihenfolge von Objekteigenschaften, erhalten aber Arrayreihenfolge und Skalartypen. Zahlen unterliegen JavaScript-Genauigkeit; sehr große Werte und Dezimalberechnungen brauchen eine passende Strategie in deiner Anwendung.

Ein gültiges Beispiel allein beweist kein korrektes Schema. Teste fehlende Pflichtfelder, falsche Typen und Grenzen einzeln. Beachte außerdem, dass eine nicht unterstützte Schemafunktion ausdrücklich gemeldet wird und keine erfolgreiche Teilprüfung als vollständige Bestätigung ausgegeben werden sollte.

So verwenden Sie dieses Tool

  1. Daten und Schema trennen

    Füge Werte ins JSON-Dokumentfeld und Regeln ins Schemafeld ein. Die Beispielschaltfläche zeigt die Trennung ohne externen Dienst.

  2. Prüfen und Meldungen lesen

    Lies die Zusammenfassung sowie Pfad und Regel jeder Zeile. Ein Pfad mit $schema weist auf die Vertragsdefinition hin.

  3. Richtige Eingabe korrigieren

    Ändere fehlerhafte Daten oder eine falsch definierte Regel. Änderungen an einem Feld blenden alte Ergebnisse aus; prüfe anschließend erneut.

Anwendungsfälle

Pflichtfelder kontrollieren

Beschreibe einen kleinen Vertrag mit required und properties und vergleiche API-Antworten. Ein vorhandener null-Wert braucht gegebenenfalls einen passenden Typ; er ist kein fehlendes Feld.

Strukturell eindeutige Arrayeinträge prüfen

Nutze uniqueItems, um gleichwertige Objekte trotz unterschiedlich geschriebener Eigenschaftsreihenfolge zu finden.

Unvereinbare Bedingungen erkennen

Unterscheide Datenfehler von ungültigen Schemas und nicht unterstützten Schlüsselwörtern. In den letzten Fällen wurde der vollständige Vertrag nicht geprüft.

Beispiele

Emoji als einen Codepunkt zählen

Der Block zeigt beide Eingaben zusammen: document gehört ins erste und schema ins zweite Feld. Die Engine-Zusammenfassung bestätigt für 😀 eine Länge zwischen 1 und 1.

Eingabe

{
  "document": "😀",
  "schema": {
    "type": "string",
    "minLength": 1,
    "maxLength": 1
  }
}

Ergebnis

{
  "valid": true,
  "issues": []
}

Zeichenkette von Ganzzahl unterscheiden

id enthält die Zeichenkette "1", während das Schema integer verlangt. Die Zusammenfassung nennt type bei $.id. Der Validator wandelt den Wert nicht automatisch in eine Zahl um.

Eingabe

{
  "document": {
    "id": "1"
  },
  "schema": {
    "type": "object",
    "required": [
      "id"
    ],
    "properties": {
      "id": {
        "type": "integer"
      }
    },
    "additionalProperties": false
  }
}

Ergebnis

{
  "valid": false,
  "issues": [
    {
      "path": "$.id",
      "keyword": "type"
    }
  ]
}

Tipps und bewährte Vorgehensweisen

  • Teste absichtlich ungültige Daten, um die tatsächliche Wirkung jeder relevanten Regel zu bestätigen.
  • Erhalte notwendige Vertragsregeln. Wechsle bei fehlender Unterstützung den Validator, statt das Schema abzuschwächen.
  • Fehlende Felder und null brauchen getrennte Prüfungen: required prüft den Schlüssel, type dessen Wert.
  • Schema-Prüfungen kontrollieren keine Berechtigungen, vorhandenen Ressourcen oder anderen Serverregeln.

Quellen und Referenzen

Häufig gestellte Fragen

Werden $ref-Verweise aufgelöst?

Nein. Weder lokale noch entfernte Verweise werden ausgewertet. Sie erzeugen eine ausdrückliche Meldung; Schemadateien und URLs werden nicht geladen.

Warum akzeptiert format: email eine beliebige Zeichenkette?

Diese Engine behandelt format nicht als prüfende Assertion. Verwende unterstützte Regeln oder einen Validator mit dem benötigten Formatvokabular.

Wie zählt minLength ein Emoji?

Ein Emoji mit einem Codepunkt wie 😀 zählt als eins. Modifikatoren, kombinierende Zeichen oder Verknüpfungsfolgen können mehrere Codepunkte umfassen, obwohl sie wie ein einziges Zeichen aussehen.

Warum gelten unterschiedlich geschriebene Objekte als gleich?

Die Reihenfolge der Eigenschaften verändert den JSON-Objektwert nicht. const, enum und uniqueItems verwenden strukturelle Gleichheit. Bei Arrays bleibt die Elementreihenfolge bedeutsam.

Verwandte Werkzeuge

Werkzeuge, die diesem ähnlich sind oder es ergänzen.

Ähnliche Werkzeuge

Erzeuge lokal im Browser ein JSON Schema aus einem JSON-Beispiel.

EntwicklungDieses Werkzeug verwenden

Formatiere, komprimiere und prüfe JSON-Daten.

EntwicklungEmpfohlenDieses Werkzeug verwenden