Ce que ça fait
Génère un schéma de validation Zod à partir de JSON. Les scalaires correspondent à leur validateur (z.string, z.number, z.boolean, z.null), les objets se récursent en z.object({...}) en ligne, les tableaux deviennent z.array(...) - et un tableau de types mélangés devient z.union([...]) de chaque type d’élément distinct. Déposez la sortie telle quelle dans un projet TypeScript qui utilise Zod pour la validation à l’exécution : réponses d’API, fichiers de config, charges utiles de formulaires, fixtures. 100 % côté client.
Comment l’utiliser
- Collez du JSON dans la boîte JSON (un exemple est prérempli - Exemple le restaure, Effacer vide la boîte).
- Définissez au besoin un Nom de racine (par défaut
Root, utilisé pour la liaisonconst Root = ...). - Le schéma s’affiche en direct à droite, épinglé pendant que vous faites défiler l’entrée.
- Copiez-le, ou Téléchargez-le sous
schema.ts.
Exemples
Un objet plat - {"id":1,"name":"Ada","active":true,"tags":["a","b"]} →
const Root = z.object({
id: z.number(),
name: z.string(),
active: z.boolean(),
tags: z.array(z.string()),
});
Les objets imbriqués se récursent en ligne - {"user":{"name":"Ada"}} →
const Root = z.object({
user: z.object({
name: z.string(),
}),
});
Les tableaux mixtes deviennent tableau d’union - {"xs":[1,"a"]} →
const Root = z.object({
xs: z.array(z.union([
z.number(),
z.string(),
])),
});
Cas limites - les tableaux vides deviennent z.array(z.unknown()) ; null correspond à z.null() ; tout ce que l’analyseur rejette s’affiche dans la boîte d’erreur à la place du schéma.
Bon à savoir
- Privé : l’analyse est locale - sûre pour des charges utiles sensibles.
- Le schéma généré est un point de départ : ajoutez des raffinements
.min()/.max()là où vos vraies données ont des contraintes que l’exemple n’a pas montrées. - Outils liés : JSON to TypeScript, JSON Validator.