Aller au contenu

JSON vers schéma Zod

JSON to Zod Schema

Construit un schéma Zod à partir d’un échantillon JSON, avec déduction des champs nuls, facultatifs et des énumérations.

Transforme un document JSON d'exemple en schéma Zod — la vérification à l'exécution que les types TypeScript ne peuvent pas vous donner. La sortie est un jeu de consts `z.object` dans l'ordre de déclaration, plus un type inféré pour la racine : un seul collage vous donne à la fois l'analyseur et le type.

🔒 Fonctionne entièrement dans votre navigateurzodjsoncodegenvalidation
Produire

JSON d’exemple

Déposez un fichier .json

Lu dans cet onglet. Rien n’est envoyé.

Donnez-lui tous les éléments dont vous disposez. Chaque enregistrement supplémentaire resserre la déduction : un champ absent de l’un d’eux est précisément ce qui le rend facultatif.

TypeScript

Comment s’en servir

  1. Collez autant d'enregistrements que vous en avez

    Chaque élément de chaque tableau est lu et fusionné, pas seulement le premier. Trois enregistrements en disent bien plus qu'un seul, car un champ absent de l'un d'eux est précisément ce qui rend ce champ facultatif.

  2. Nommez le type racine

    Les objets imbriqués sont nommés d'après la clé qui les porte, mise au singulier pour les tableaux : `users` donne donc un `User`. Seule la racine attend un nom de votre part.

  3. Lisez les décomptes sous la sortie

    Types, champs facultatifs, unions et nombre d'enregistrements fusionnés. Un décompte d'unions supérieur à zéro signifie qu'un champ portait deux sortes de valeurs différentes dans votre échantillon — cela vaut la peine d'y regarder avant de coller le résultat dans une base de code.

  4. Collez-le et analysez avec

    Les blocs sont émis enfants d'abord, ce qui compte en Zod : un `z.object` qui référence une const déclarée plus loin lève une erreur au moment de l'import au lieu d'échouer au typage. Gardez l'ordre tel qu'il est généré.

Questions fréquentes

Pourquoi le schéma ne correspond-il pas à mon contrat d'API ?

Parce qu'il décrit l'échantillon, pas le contrat. Un champ marqué facultatif était simplement absent de l'un des enregistrements que vous avez collés ; un champ marqué obligatoire peut rester facultatif dans une API dont vous n'avez pas assez vu. Traitez la sortie comme un premier jet à resserrer à la main.

Y a-t-il des affinements — email, uuid, longueur minimale ?

Aucun. Tout est `z.string()`, `z.number()` ou `z.boolean()`, avec `.int()` quand tous les nombres de l'échantillon étaient entiers. Ajouter `.email()` parce qu'une chaîne contenait une arobase serait deviner, et un affinement erroné rejette des données valides en production.

Que devient un tableau vide ?

Il devient `z.array(z.unknown())`, car un tableau vide ne dit rien du type de ses éléments. Collez un enregistrement où le tableau n'est pas vide et le schéma se complète tout seul.

Pour quelle version de Zod est-ce prévu ?

Les appels émis sont ceux qui sont identiques en Zod 3 et en Zod 4 — `z.object`, `z.array`, `z.union`, `.nullable()`, `.optional()` et `z.record(z.string(), z.unknown())` dans sa forme à deux arguments. Rien de spécifique à une version n'est utilisé.

À alimenter depuis

Ensuite

Ces outils acceptent ce que celui-ci produit : le résultat peut y aller directement.