JSON to Zod

Generate Zod schemas from JSON

Opciones del esquema

Se exporta como const. El tipo inferido se exporta como Root.

JSON de entrada

Límites: 5 MiB por archivo o 5.242.880 caracteres, 256 niveles de anidación.

Esquema Zod

Se revisan todos los elementos de cada array: los tipos distintos se convierten en z.union(...) y las claves ausentes en algunos objetos pasan a .optional(). Usa el resultado como punto de partida y ajústalo con formatos, enums o límites.

Qué hace JSON to Zod

JSON to Zod convierte un JSON de ejemplo en un esquema Zod para validar datos en tiempo de ejecución con TypeScript. Primero infiere un árbol de esquema independiente de la librería y después lo emite como código Zod, cubriendo cadenas, números, booleanos, null, objetos anidados, arrays y arrays de objetos. La descarga es un módulo .ts listo para importar con import { z } from "zod", el esquema exportado y un tipo exportado creado con z.infer.

Cómo usarlo
  1. 1.Pega JSON de ejemplo, carga un archivo .json, arrástralo al editor o carga el ejemplo.
  2. 2.Define el nombre del esquema raíz, por ejemplo UserSchema; el tipo exportado será User.
  3. 3.Revisa el código generado y los avisos sobre tipos inciertos.
  4. 4.Copia el código o descárgalo como archivo .ts. Borrar vacía el editor.
Cómo se infieren los tipos
  • •Se revisan todos los elementos de cada array, no solo el primero. Los elementos de tipos distintos se convierten en z.union([...]).
  • •Los objetos de un mismo array se combinan: una clave ausente en algunos objetos pasa a .optional() y una clave que a veces es null se convierte en una unión con z.null().
  • •Un array vacío no aporta información, así que sus elementos son z.unknown() y se muestra un aviso.
  • •Un valor que siempre es null queda como z.null() con un aviso, porque el tipo real no se puede deducir del ejemplo.
  • •Las claves siempre van entre comillas, así que nombres como "user-id" o "__proto__" se manejan de forma segura.
Límites y precisión

Un ejemplo muestra cómo eran los datos una vez, no el contrato completo. Añade tú mismo formatos (email, url, datetime), enums, min/max o .strict() cuando tu API los garantice. Los enteros fuera del rango seguro de JavaScript se señalan porque pierden precisión al analizarlos. La entrada admite hasta 5 MiB y 256 niveles de anidación, y todo se ejecuta en tu navegador.

CodingTool ya está oficialmente disponible en

Launched on StartupBaseCodingTool.dev - Free, Fast & Easy Developer Tools in One Place | Product HuntCodingTool - Featured on Startup FameFazier badgeListed on Turbo0Featured on Twelve ToolsFeatured on Findly.tools