JSON zu Zod Konverter â Schemas generieren
JSON online in Zod-Schemas umwandeln: mit verschachtelten Objekten, Arrays, optionalen und nullable Feldern sowie z.infer-TypeScript-Typen. Kostenlos und privat.
đ LĂ€uft vollstĂ€ndig in Ihrem Browser â nichts wird hochgeladenZod-Schemas, erzeugt aus JSON
TypeScript-Typen verschwinden zur Laufzeit, daher sind Daten aus einer API, einem Formular oder localStorage nur so sicher wie der Code, der sie prĂŒft. Zod schlieĂt diese LĂŒcke, indem es Werte gegen ein Schema validiert und den TypeScript-Typ aus demselben Schema ableitet. Dieser JSON-zu-Zod-Konverter schreibt das Schema fĂŒr Sie: FĂŒgen Sie ein JSON-Beispiel ein, und jedes Objekt wird zu einem z.object, Primitive werden zu z.string(), z.number() und z.boolean(), Arrays zu z.array(...), und verschachtelte Objekte erhalten eigene benannte Schemas, die ĂŒberall wiederverwendet werden, wo sie vorkommen.
Das Tool basiert auf quicktype, das alle Elemente jedes Arrays zusammenfĂŒhrt, bevor es Typen ableitet. Felder, die nur in einigen EintrĂ€gen vorkommen, werden als optional markiert, und Werte, die manchmal null sind, als nullable â das Schema akzeptiert also die echten Daten, die Sie gesehen haben, und nicht nur das erste Element.
Schemas und abgeleitete Typen zusammen
StandardmĂ€Ăig exportiert die Ausgabe zu jedem Schema auch einen TypeScript-Typ per z.infer und liefert so eine einzige Quelle der Wahrheit fĂŒr Validierung und statische Typisierung. Importieren Sie das Root-Schema und rufen Sie RootSchema.parse(data) auf, um einen nicht vertrauenswĂŒrdigen Wert zu validieren und ein typisiertes Ergebnis zu erhalten, oder safeParse, wenn Sie Fehler ohne Exceptions behandeln möchten. Aktivieren Sie Schemas only, wenn Sie Typen lieber anderswo deklarieren. Das ist eine natĂŒrliche ErgĂ€nzung zum Tool JSON zu TypeScript, wenn Sie Laufzeitgarantien statt nur Hinweise zur Kompilierzeit benötigen.
Tipps fĂŒr strengere Schemas
Erzeugen Sie das Schema aus einem reprĂ€sentativen Beispiel mit mehreren Array-Elementen und ausgefĂŒllten optionalen Feldern. Verfeinern Sie dann, was ein Beispiel nicht zeigen kann: ErgĂ€nzen Sie .email(), .url() oder .uuid() bei String-Feldern, nutzen Sie z.enum fĂŒr Felder mit festem Wertevorrat, beschrĂ€nken Sie Zahlen mit .int() oder .min() und entscheiden Sie, ob unbekannte SchlĂŒssel entfernt oder mit .strict() abgelehnt werden sollen. Die gesamte Erzeugung lĂ€uft lokal, daher können Sie bedenkenlos Produktiv-Payloads einfĂŒgen.
So verwenden Sie
- JSON einfĂŒgenFĂŒgen Sie eine API-Antwort oder ein beliebiges JSON-Beispiel ein oder klicken Sie auf Load sample.
- Root benennenLegen Sie den Namen des Root-Schemas fest und entscheiden Sie, ob abgeleitete Typen enthalten sein sollen.
- Schemas kopierenKopieren Sie den TypeScript-Code oder laden Sie eine .ts-Datei herunter und validieren Sie mit schema.parse().
HĂ€ufig gestellte Fragen
Was enthÀlt die Ausgabe?
z.infer abgeleitete TypeScript-Typen. Aktivieren Sie Schemas only, um die Typ-Aliase wegzulassen.Wie werden optionale und nullable Felder behandelt?
.optional() oder .nullable(), sodass die Validierung die in echten Daten gesehenen Varianten akzeptiert.Welche Zod-Version wird unterstĂŒtzt?
z.object, z.array, z.string und z.number, die in Zod 3 und Zod 4 funktionieren.