JSON a schema Zod
Genera uno schema di validazione Zod e tipi TypeScript da un esempio JSON, con rilevamento di formati ed enumerazioni.
JSON a schema Zod
Incolla un esempio JSON — una risposta API, un file di configurazione, una riga di database — e ottieni uno schema Zod pronto all'uso in TypeScript. I tipi vengono inferiti per campo: i primitivi vengono mappati a z.string(), z.number() e z.boolean(), gli array hanno il tipo di elemento inferito e un valore che differisce tra le occorrenze diventa un z.union(). Una stringa che sembra un indirizzo email, un URL, un UUID o una data ISO ottiene il validatore corrispondente — .email(), .url(), .uuid(), .date() o .datetime() — invece di un semplice z.string().
Forniscigli un array di oggetti della stessa forma, come righe da un endpoint elenco, e il generatore unisce ogni elemento prima di tipizzare il campo: una chiave mancante in alcune righe diventa .optional(), una chiave che a volte è nulla diventa .nullable() o .optional() a seconda dell'opzione che scegli, e un campo che ripete un piccolo insieme di valori — una colonna di stato o ruolo — diventa un z.enum() appropriato invece di una stringa aperta. Attiva "Dividi oggetti annidati" per estrarre ogni oggetto annidato nella sua stessa esportazione denominata anziché un letterale profondamente annidato, dove le forme identiche condividono automaticamente uno schema. Attiva "Oggetti rigorosi" per rifiutare qualsiasi chiave che l'esempio non ha mai mostrato, rilevando errori di battitura e campi API inaspettati durante l'analisi anziché successivamente.
Nomina lo schema esportato come il tuo codice si aspetta e, facoltativamente, aggiungi export type X = z.infer<typeof X> proprio sotto, in modo che il validatore in esecuzione e il tipo in fase di compilazione provengano dalla stessa fonte e non possano mai divergere silenziosamente.
Tutto viene eseguito localmente nel tuo browser. L'JSON che incolli — risposte API contenenti token, record utente, carichi interni — viene analizzato e tipizzato completamente sul tuo dispositivo e non viene mai caricato da nessuna parte. Incolla un esempio, copia lo schema generato nel tuo progetto e inizia a convalidare quello che analizzi.