Desarrollador / Tipos
Convertidor de JSON a esquema de Zod
Genera un esquema de Zod y su tipo de TypeScript a partir de un ejemplo JSON, con objetos anidados, matrices, campos opcionales y anulables, y números enteros.
Convertidor de JSON a esquema de Zod: Cada objeto del ejemplo se convierte en un esquema z.object, exportado junto con un tipo inferido a partir de él, y los objetos anidados reciben sus propios esquemas con nombre. Los objetos de una matriz se combinan: las claves que faltan en algunos reciben .optional(), las claves que a veces son null reciben .nullable() y los números enteros reciben .int(). Los esquemas generados se comprobaron analizando sus propios ejemplos con Zod. Funciona al 100 % en tu navegador, sin subir archivos a ningún servidor.
- Categoría
- Herramientas de desarrollo
- Se ejecuta
- En tu navegador
- Coste
- Gratis · sin registro
- Disponibilidad
- Lista para usar
Funciona por completo en tu navegador
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);
Cada objeto obtiene un esquema y un tipo inferido. Las claves que faltan en algunos objetos reciben .optional(), las claves que a veces son null reciben .nullable() y los números enteros reciben .int(); relaja cualquier regla que tu API no garantice.
Uso del esquema
Llama a Schema.parse(data) para validar y generar un error con los datos incorrectos, o a Schema.safeParse(data) para obtener un resultado que puedas comprobar sin usar try y catch. El tipo exportado mediante z.infer se mantiene sincronizado con el esquema a medida que lo editas.
Si solo necesitas tipos en tiempo de compilación, JSON a TypeScript proporciona interfaces simples; para validar con un JSON Schema existente, usa el validador de JSON Schema.
Cómo ajustar las reglas generadas
El ejemplo solo muestra lo que contiene, así que considera el esquema como un punto de partida: añade .email(), .url() o .datetime() a las cadenas cuando corresponda, z.enum([...]) a los campos con un conjunto fijo de valores y .min() o .max() cuando tus datos tengan límites.
Cómo se usa
- Pega un ejemplo JSON, preferiblemente una matriz con varios registros habituales.
- Asigna un nombre al tipo de nivel superior.
- Copia los esquemas y úsalos para validar datos durante la ejecución.
Privacidad y límites
El JSON se convierte en tu navegador y nunca se sube.
Herramientas relacionadas
Preguntas frecuentes
¿Por qué usar Zod en lugar de una interfaz de TypeScript?
Una interfaz desaparece al compilar el código, por lo que no puede comprobar los datos durante la ejecución; un esquema de Zod comprueba los datos y te proporciona el mismo tipo con z.infer.
¿De verdad los números enteros deben usar .int()?
Solo si tu API garantiza números enteros. Si un precio o una puntuación puede tener decimales, elimina .int() aunque el ejemplo solo contenga números enteros.
¿Admite cadenas como fechas o direcciones de correo electrónico?
Se tipan como z.string(); añade validaciones adicionales como .email(), .url() o una comprobación de fecha cuando tus datos lo necesiten.
Herramienta gratuita · se ejecuta en tu navegador · sin cuenta