Was es tut
Erzeugt ein Zod-Validierungsschema aus JSON. Skalare mappen auf ihren Validator (z.string, z.number, z.boolean, z.null), Objekte werden rekursiv zu inline z.object({...}) verschachtelt, Arrays werden zu z.array(...) - und ein Array mit gemischten Typen wird zu z.union([...]) über jeden vorkommenden Elementtyp. Setze die Ausgabe direkt in ein TypeScript-Projekt ein, das Zod für Laufzeit-Validierung nutzt: API-Antworten, Config-Dateien, Form-Payloads, Fixtures. 100 % clientseitig.
So verwendest du es
- Füge JSON in das Feld JSON ein (ein Sample ist vorbelegt - Sample stellt es wieder her, Clear leert es).
- Optional: setze einen Root name (Standard
Root, genutzt für dasconst Root = ...-Binding). - Das Schema rendert live auf der rechten Seite und bleibt fixiert, während du in der Eingabe scrollst.
- Copy übernimmt es, oder Download speichert es als
schema.ts.
Beispiele
Ein flaches Objekt — {"id":1,"name":"Ada","active":true,"tags":["a","b"]} →
const Root = z.object({
id: z.number(),
name: z.string(),
active: z.boolean(),
tags: z.array(z.string()),
});
Verschachtelte Objekte rekursiv inline — {"user":{"name":"Ada"}} →
const Root = z.object({
user: z.object({
name: z.string(),
}),
});
Gemischte Arrays werden Array-of-Union — {"xs":[1,"a"]} →
const Root = z.object({
xs: z.array(z.union([
z.number(),
z.string(),
])),
});
Edge-Cases — leere Arrays werden zu z.array(z.unknown()); null mappt auf z.null(); alles, was der Parser zurückweist, erscheint in der Fehlerbox statt im Schema.
Gut zu wissen
- Privat: das Parsen läuft lokal - sicher für sensible Payloads.
- Das generierte Schema ist ein Ausgangspunkt: ergänze
.min()/.max()-Refinements dort, wo deine echten Daten Constraints haben, die das Sample nicht gezeigt hat. - Verwandte Tools: JSON to TypeScript, JSON Validator.