Convertitore da JSON a schema Zod
Incolla JSON e ottieni uno schema Zod pronto all'uso all'istante, 100% online nel browser. Tipizzazione z.number().int() corretta, .optional() e .nullable(), più un tipo z.infer. Gratis.
Opzioni
Cos'è uno schema Zod?
Uno schema Zod è una descrizione della forma di un valore, pensata prima di tutto per TypeScript, che valida i dati a runtime e ne deduce un tipo statico in fase di compilazione. Generarne uno da un campione JSON significa non scrivere mai a mano il boilerplate di validazione per le risposte API, i moduli o i file di configurazione. Questo generatore di schemi Zod deduce i tipi corretti, contrassegna le chiavi assenti come .optional(), i valori null come .nullable(), e ti fornisce un tipo z.infer — tutto al 100% nel tuo browser.
Esempi
Risposta API
{"id":101,"name":"Ada Lovelace","email":"ada@example.com","active":true,"roles":["admin","user"]} import { z } from "zod";
export const RootSchema = z.object({
id: z.number().int(),
name: z.string(),
email: z.string(),
active: z.boolean(),
roles: z.array(z.string()),
});
export type Root = z.infer<typeof RootSchema>;
Un tipico payload REST diventa uno schema Zod pronto all'uso. I numeri interi vengono dedotti come z.number().int(), e l'array roles diventa z.array(z.string()). Un tipo z.infer è incluso gratuitamente.
Oggetto annidato
{"repo":"zod","owner":{"login":"colinhacks","id":100}} import { z } from "zod";
export const OwnerSchema = z.object({
login: z.string(),
id: z.number().int(),
});
export const RootSchema = z.object({
repo: z.string(),
owner: OwnerSchema,
});
export type Root = z.infer<typeof RootSchema>;
Gli oggetti annidati diventano il proprio schema con nome (OwnerSchema) e vengono referenziati per campo. Gli schemi figli sono dichiarati prima del genitore che li usa, e le forme identiche vengono dichiarate una sola volta e riutilizzate.
Array di oggetti (campo opzionale)
{"users":[{"id":1,"nick":"x"},{"id":2}]} import { z } from "zod";
export const UserSchema = z.object({
id: z.number().int(),
nick: z.string().optional(),
});
export const RootSchema = z.object({
users: z.array(UserSchema),
});
export type Root = z.infer<typeof RootSchema>;
Gli array di oggetti si uniscono in un unico schema per l'elemento. Una chiave assente in alcuni elementi diventa .optional(), così l'analisi riesce comunque quando manca.
Campo nullable e unificazione dei numeri
{"items":[{"sku":"A1","discount":0.1},{"sku":"A2","discount":null}]} import { z } from "zod";
export const ItemSchema = z.object({
sku: z.string(),
discount: z.number().nullable(),
});
export const RootSchema = z.object({
items: z.array(ItemSchema),
});
export type Root = z.infer<typeof RootSchema>;
Un campo che è null in alcuni campioni ma tipizzato in altri diventa .nullable(). Poiché 0.1 ha la virgola decimale, il numero si unifica in z.number() anziché in z.number().int().
Come convertire JSON in Zod
- 1
Incolla il tuo JSON
Inserisci un oggetto JSON, un array o una risposta API nel campo di input. La conversione parte istantaneamente.
- 2
Regola l'output
Rinomina lo schema radice e attiva o meno la riga import, il tipo z.infer o la parola chiave export per adattarlo allo stile del tuo progetto.
- 3
Copia o scarica
Prendi lo schema Zod generato con un clic e incollalo direttamente nel tuo livello di validazione.
Common Use Cases
- Validare le risposte API
- Trasforma una risposta di esempio REST o GraphQL in uno schema Zod e analizzala al confine del fetch, così i dati mal formati falliscono subito con un errore chiaro invece di filtrare attraverso la tua app.
- Moduli e input tipizzati
- Genera uno schema per l'input di un modulo o di una query e riutilizza il tipo z.infer nella tua interfaccia e nei tuoi handler per una sicurezza dei tipi end-to-end.
- Schemi tRPC e strumenti IA
- Avvia gli schemi di input e output delle procedure tRPC o degli strumenti IA a output strutturato a partire da un payload di esempio invece di scriverli a mano.
Come funziona la conversione
- Inferenza strutturale
- Ogni oggetto diventa uno schema con nome; le forme identiche vengono dichiarate una sola volta e riutilizzate. Gli array di oggetti si uniscono chiave per chiave, e le chiavi assenti in alcuni elementi diventano .optional().
- Corrispondenza dei tipi corretta
- Gli interi vengono mappati su z.number().int() e i decimali su z.number(). Le stringhe, i booleani e i null vengono mappati su z.string(), z.boolean() e z.null(); un array di primitivi misti diventa un z.union().
- Tipi TypeScript inclusi
- Viene emesso un alias di tipo z.infer per lo schema radice, così lo schema resta l'unica fonte di verità e i tuoi tipi non divergono mai dalla tua validazione.
- 100% lato client
- Il parsing e la generazione girano nel tuo browser senza chiamate di rete, così i tuoi dati restano privati.
Consigli per schemi Zod puliti
- Dai un nome allo schema radice
- Imposta un nome radice significativo come User o ApiResponse invece del Root predefinito per un codice leggibile e autodocumentato.
- Affina z.unknown() e le union
- Gli array vuoti o misti producono z.unknown() o un z.union() ampio. Incolla un campione più ricco e rappresentativo così lo strumento deduce tipi precisi, poi restringi tutto ciò che resta ambiguo.
- Valida al confine
- Chiama safeParse() dove entrano dati non attendibili — risposte API, input dei moduli, webhook — così i dati errati vengono intercettati prima di raggiungere la logica della tua applicazione.
Domande frequenti
Come converto JSON in uno schema Zod?
Qual è la differenza tra JSON a Zod e JSON Schema a Zod?
Come ottengo un tipo TypeScript dallo schema?
Come vengono gestiti i campi opzionali e null?
Quale tipo numerico genera?
L'output funziona con Zod 3 e Zod 4?
Come valido i dati con lo schema generato?
Come vengono gestiti gli array e i tipi misti?
I miei dati JSON sono privati e al sicuro?
Lo strumento è gratuito? Serve un account?
Strumenti correlati
Vedi tutti gli strumenti →Decodificatore e codificatore Base64
Codifica e formattazione
Decodifica e codifica Base64 online gratis. Conversione in tempo reale con pieno supporto UTF-8 ed emoji. 100% privato — gira nel tuo browser. Nessuna registrazione.
Convertitore da Base64 a immagine
Codifica e formattazione
Decodifica una stringa Base64 o un data URI in un'immagine nel tuo browser. Anteprima, dimensioni e MIME, poi scarica come PNG, JPG, GIF, SVG. Nessun upload.
Convertitore CSV in JSON
Codifica e formattazione
Converti CSV in JSON nel browser. RFC 4180, inferenza tipi, riga header, sicuro per big-int. 100% privato, nessun upload.
Convertitore da .env a JSON
Codifica e formattazione
Incolla un file .env online e ottieni subito il JSON. Password, chiavi API e token non lasciano mai il browser: parser dotenv web, 100% privato, senza upload.
Decodificatore di entità HTML gratuito — Unescape HTML
Codifica e formattazione
Decodifica le entità HTML e fai l'unescape dell'HTML online — gratis, senza registrazione, 100% nel browser. Riconverte riferimenti con nome, decimali ed esadecimali in caratteri; mai caricato.
Codificatore di entità HTML gratuito — Escape HTML
Codifica e formattazione
Codifica le entità HTML e fai l'escape dei caratteri speciali (< > & " ') online — gratis, senza registrazione, 100% nel browser. Output con nome, decimale o esadecimale; mai caricato.