Datenvertrag entwerfen
Beginne mit API-Antwort oder Austauschdatei und vergleiche die Struktur mit der Fachdokumentation. Ergänze Bedingungen, die das Beispiel nicht belegen kann.
Analysiere ein JSON-Dokument und leite Typen, Eigenschaften, Arrays und Pflichtfelder automatisch ab.
Entwirf JSON Schema aus einem repräsentativen JSON-Dokument. Der Generator erkennt Typen, verschachtelte Objekte, Listen und beobachtete Eigenschaften und erzeugt eine wiederverwendbare Struktur für Draft 2020-12. Das Ergebnis ist ein zu prüfender Vorschlag, keine automatische Entdeckung aller API-Regeln. Kein Dokument wird an einen Ableitungsdienst gesendet: Dein Browser analysiert das Beispiel und zeigt ein JSON-Schema zum Prüfen, Kopieren oder Exportieren.
Zeichenketten werden zu string, boolesche Werte zu boolean und null zu null. Beobachtete Ganzzahlen werden von anderen Zahlen unterschieden. Objekte erzeugen properties; Arrays leiten items aus allen Einträgen ab, nicht nur aus dem ersten. Typvarianten können mit anyOf beschrieben werden.
Eigenschaften werden über Objekte desselben Arrays zusammengeführt. Fehlt ein Schlüssel in einigen Objekten, steht er nicht in required; durchgehend vorhandene Schlüssel werden aufgenommen. Das zeigt nur Beispiele. Enthält eine einzige Antwort ein eigentlich optionales Feld, kann der Generator dessen mögliche Abwesenheit nicht erkennen.
Generierte Objekte verwenden additionalProperties: false. Unbeobachtete Schlüssel werden dadurch abgelehnt, selbst wenn deine Anwendung sie akzeptieren würde. Prüfe diese Regel vor zukünftigen Antworten. Ein leeres Array verrät keine künftigen Elementtypen; deren Schema bleibt daher offen, statt einen Typ zu erfinden.
Die Ableitung erfindet keine E-Mail-Formate, Regex-Regeln, Zahlenbereiche oder vollständigen Wertelisten. Ein Datum bleibt eine Zeichenkette. Der Wert 1 beweist weder minimum: 1 noch const: 1. Zahlen verwenden die Browserdarstellung. Erhalte große Kennungen als Zeichenketten, wenn dein Vertrag diese Darstellung vorsieht.
Ein abgeleitetes Schema beschreibt nur die vorliegenden Beispiele. Fehlt darin ein optionales Feld vollständig, kann der Generator es nicht erfinden. Ergänze solche Eigenschaften nach dem fachlichen Vertrag und prüfe anschließend sowohl gültige als auch bewusst ungültige Dokumente.
Füge gültiges JSON mit vollständiger Struktur ein. Anonymisierte Varianten helfen mehr als große Mengen gleichartiger Werte.
Prüfe Typen, required und geschlossene Objekte. Ein null-Wert unterscheidet sich von einer fehlenden Eigenschaft.
Füge belegte Formate und Grenzen hinzu. Teste gültige und ungültige Daten vor der Integration. Downloads enthalten JSON Schema, kein TypeScript-Modul.
Beginne mit API-Antwort oder Austauschdatei und vergleiche die Struktur mit der Fachdokumentation. Ergänze Bedingungen, die das Beispiel nicht belegen kann.
Nutze fehlende und vorhandene Felder sowie null, um Pflichtfelder von erlaubten Typen zu trennen. Unterschiedliche Beispiele ergeben eine bessere Ausgangsbasis.
Verwende einen Validator, der Draft und Schlüsselwörter unterstützt. Die Generierung installiert keine automatische Prüfung in deiner Anwendung.
id wird integer und active boolean. Beide sind aufgrund ihrer Anwesenheit erforderlich; additionalProperties lehnt weitere Schlüssel ab.
Eingabe
{"id":1,"active":true}Ergebnis
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"active": {
"type": "boolean"
}
},
"required": [
"id",
"active"
],
"additionalProperties": false
}id steht in beiden Objekten und bleibt erforderlich. name steht nur im zweiten Objekt und ist daher bekannt, aber optional.
Eingabe
[{"id":1},{"id":2,"name":"Ada"}]Ergebnis
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
}
},
"required": [
"id"
],
"additionalProperties": false
}
}Nein. Alle bereitgestellten Einträge fließen ein. Objekteigenschaften werden zusammengeführt und beobachtete Auslassungen beeinflussen required. Unbekannte zukünftige Daten werden dadurch nicht vorhergesagt.
Es fehlte in keinem relevanten Beispiel. Entferne es gemäß dem echten Vertrag aus required oder ergänze ein repräsentatives Objekt ohne diesen Schlüssel.
Generierte Objekte sind mit additionalProperties: false geschlossen. Ändere das, wenn deine Regeln neue Eigenschaften erlauben. Entscheide bewusst vor der Validierung weiterentwickelter Daten.
Nein. Es beschreibt beobachtete Formen und braucht fachliche Prüfung. Ergänze Bedingungen und nutze einen Validator, der den tatsächlichen Draft und die verwendeten Schlüsselwörter unterstützt.
Verwandte Werkzeuge
Werkzeuge, die diesem ähnlich sind oder es ergänzen.
Prüft JSON-Dokumente gegen ein JSON Schema und zeigt Fehler mit Pfad und Regel präzise an.
Erzeugt aus JSON-Daten passende TypeScript-Typen und Interfaces für eine schnellere Entwicklung.
Formatiere, komprimiere und prüfe JSON-Daten.