Sviluppatore / Tipi

Convertitore da JSON a schema Zod

Genera uno schema Zod e il relativo tipo TypeScript da un esempio JSON, con oggetti annidati, array, campi facoltativi e nullable e numeri interi.

Convertitore da JSON a schema Zod: Ogni oggetto nell'esempio diventa uno schema z.object, esportato insieme a un tipo inferito, mentre gli oggetti annidati ricevono schemi denominati propri. Gli oggetti in un array vengono uniti: alle chiavi mancanti in alcuni oggetti viene aggiunto .optional(), alle chiavi che a volte hanno valore null viene aggiunto .nullable() e ai numeri interi viene aggiunto .int(). Gli schemi generati sono stati verificati analizzando con Zod i relativi esempi. Funziona al 100% localmente nel browser, senza caricare file sul server.

Esecuzioni
Nel browser
Costo
Gratuito · senza registrazione
Disponibilità
Pronto all'uso
Da JSON a ZodElaborazione locale

Funziona interamente nel browser

TypeScript

import { z } from "zod";

export const AddressSchema = z.object({
  city: z.string(),
  zip_code: z.string(),
});
export type Address = z.infer<typeof AddressSchema>;

export const UserSchema = z.object({
  id: z.number().int(),
  user_name: z.string(),
  avatar_url: z.string(),
  score: z.number(),
  tags: z.array(z.string()),
  address: AddressSchema,
  manager_id: z.number().int().nullable(),
  nickname: z.string().optional(),
});
export type User = z.infer<typeof UserSchema>;

export const UserListSchema = z.array(UserSchema);

Ogni oggetto riceve uno schema e un tipo inferito. Le chiavi mancanti in alcuni oggetti ricevono .optional(), quelle che a volte sono null ricevono .nullable() e i numeri interi ricevono .int(); allenta qualsiasi regola che la tua API non garantisce.

Usare lo schema

Chiama Schema.parse(data) per validare e generare un errore in caso di dati non validi, oppure Schema.safeParse(data) per ottenere un risultato che puoi controllare senza usare try e catch. Il tipo esportato, ottenuto da z.infer, resta sincronizzato con lo schema mentre lo modifichi.

Se ti servono solo i tipi a tempo di compilazione, JSON to TypeScript fornisce semplici interfacce; per validare i dati rispetto a uno JSON Schema esistente, usa il validatore JSON Schema.

Rendere più precise le regole generate

L'esempio mostra solo ciò che contiene, quindi considera lo schema un punto di partenza: aggiungi .email(), .url() o .datetime() alle stringhe quando necessario, z.enum([...]) ai campi con un insieme fisso di valori e .min() o .max() quando i tuoi dati hanno dei limiti.

Come usarlo

  1. Incolla un esempio JSON, idealmente un array con diversi record rappresentativi.
  2. Assegna un nome al tipo principale.
  3. Copia gli schemi e usali per validare i dati durante l'esecuzione.

Privacy e limitazioni

Il JSON viene convertito nel tuo browser e non viene mai caricato.

Strumenti correlati

Domande frequenti

Perché usare Zod invece di un'interfaccia TypeScript?

Un'interfaccia scompare quando il codice viene compilato, quindi non può verificare i dati durante l'esecuzione; uno schema Zod controlla i dati e ti fornisce lo stesso tipo con z.infer.

I numeri interi devono davvero avere .int()?

Solo se la tua API garantisce numeri interi. Se un prezzo o un punteggio può avere una parte frazionaria, rimuovi .int() anche quando l'esempio contiene solo numeri interi.

Gestisce stringhe come date o indirizzi email?

Vengono tipizzate come z.string(); aggiungi raffinamenti come .email(), .url() o un controllo della data dove i tuoi dati lo richiedono.

Strumento gratuito · nel browser esecuzioni · senza account