JSON in JSON Schema
JSON to JSON Schema
Leitet aus einem oder mehreren Beispielen ein JSON Schema ab und vereinigt die gesehenen Formen.
Beschreibt ein Beispieldokument als JSON Schema (2020-12): Typen, Properties, `required` und verschachtelte `$defs` für wiederkehrende Formen. Nützlich für einen Vertragstest, eine OpenAPI-Komponente oder überall dort, wo ein Validator ein Schema statt eines Beispiels will.
Beispiel-JSON
Eine .json-Datei ablegen
Wird in diesem Tab gelesen. Nichts wird hochgeladen.
Geben Sie ihm jedes Element, das Sie haben. Jeder weitere Datensatz engt die Vermutung ein – ein Feld, das in einem davon fehlt, ist genau das, was es optional macht.
TypeScript
So funktioniert es
Fügen Sie so viele Datensätze ein, wie Sie haben
Jedes Element jedes Arrays wird gelesen und zusammengeführt, nicht nur das erste. Drei Datensätze sagen weit mehr als einer, denn ein Feld, das in einem davon fehlt, ist genau das, was dieses Feld optional macht.
Benennen Sie den Wurzeltyp
Verschachtelte Objekte werden nach dem Schlüssel benannt, der sie enthält, bei Arrays in die Einzahl gesetzt, sodass `users` ein `User` ergibt. Nur die Wurzel braucht einen Namen von Ihnen.
Lesen Sie die Zähler unter der Ausgabe
Typen, optionale Felder, Unions und wie viele Datensätze zusammengeführt wurden. Ein Union-Zähler über null bedeutet, dass ein Feld in Ihrer Stichprobe zwei verschiedene Arten von Wert hatte – einen Blick wert, bevor Sie das Ergebnis in eine Codebasis einfügen.
Bringen Sie das Schema zu einem Validator
Die Ausgabe trägt ihr `$schema`-Schlüsselwort, sodass sie direkt in den JSON-Schema-Validator auf dieser Website oder in jede 2020-12-Implementierung gehen kann.
Häufige Fragen
Welcher Draft ist das?
Draft 2020-12, deklariert im `$schema`-Schlüsselwort. Wiederverwendbare Formen stehen in `$defs` und werden mit `$ref` referenziert, was die Schreibweise dieses Drafts ist; Draft-07-Werkzeuge wollen stattdessen `definitions` und lösen diese Referenzen nicht auf.
Warum ist nichts über den Typ hinaus eingeschränkt?
Es wird kein `format`, `minLength`, `pattern` oder `enum` ausgegeben. Jedes davon würde aus einer Handvoll Datensätze abgeleitet, und ein Schema, das gültige Produktionsdaten ablehnt, ist schlechter als eines, das nur locker ist. Fügen Sie die Einschränkungen hinzu, die Sie tatsächlich begründen können.
Ist `additionalProperties` gesetzt?
Es bleibt offen, das heißt, zusätzliche Schlüssel validieren. Es zu schließen würde jedes Feld, das die API später hinzufügt, zu einem Validierungsfehler machen, und eine Stichprobe kann Ihnen nicht sagen, ob die Form geschlossen sein soll.
Wie entscheidet es, was in `required` kommt?
Eine Property ist erforderlich, wenn sie in jedem Datensatz vorhanden war, der in diese Form zusammengeführt wurde. Fügen Sie einen Datensatz ein, und alles ist erforderlich; fügen Sie fünf ein, und das Schema beginnt, Ihnen etwas Echtes zu sagen.
Eingabe aus
JSON in TypeScript
JSON to TypeScript
Leitet aus einem JSON-Beispiel TypeScript-Interfaces oder -Typen ab und führt optionale und Union-Felder zusammen.
JSON in Zod-Schema
JSON to Zod Schema
Baut aus einem JSON-Beispiel ein Zod-Schema, mit Ableitung von nullable, optional und enum.
JSON-Schema-Validator
JSON Schema Validator
Validiert ein Dokument gegen ein JSON Schema und meldet jeden Fehler mit seinem Instanzpfad.
JSON formatieren und validieren
JSON Formatter & Validator
Formatiert, minimiert und validiert JSON und zeigt bei Syntaxfehlern die genaue Zeile und Spalte.
Danach
Diese Tools nehmen an, was dieses hier erzeugt, das Ergebnis kann also direkt weiter.
JSON-Schema-Validator
JSON Schema Validator
Validiert ein Dokument gegen ein JSON Schema und meldet jeden Fehler mit seinem Instanzpfad.
JSON in TypeScript
JSON to TypeScript
Leitet aus einem JSON-Beispiel TypeScript-Interfaces oder -Typen ab und führt optionale und Union-Felder zusammen.
JSON in Zod-Schema
JSON to Zod Schema
Baut aus einem JSON-Beispiel ein Zod-Schema, mit Ableitung von nullable, optional und enum.
OpenAPI-Linter
OpenAPI Linter
Prüft ein OpenAPI-Dokument auf fehlende Antworten, ungenutzte Schemas, ins Leere zeigende Referenzen und die anderen Mängel, die Codegeneratoren brechen.
JSON ⇄ CSV umwandeln
JSON ⇄ CSV
Flacht verschachteltes JSON zu Spalten ab oder baut Objekte aus einer Tabelle wieder auf, mit Punktpfad-Regel für die Spaltennamen.
JSON vergleichen
JSON Diff
Vergleicht zwei JSON-Dokumente strukturell, ignoriert die Schlüsselreihenfolge und meldet hinzugefügte, entfernte und geänderte Pfade.