Développeur / Types
Convertisseur JSON vers schéma Zod
Générez un schéma Zod et son type TypeScript à partir d'un échantillon JSON, avec des objets imbriqués, des tableaux, des champs facultatifs ou nullables et des entiers.
Convertisseur JSON vers schéma Zod: Chaque objet de l'échantillon devient un schéma z.object, exporté avec un type inféré à partir de celui-ci, et les objets imbriqués disposent de leurs propres schémas nommés. Les objets d'un tableau sont fusionnés : les clés absentes de certains objets reçoivent .optional(), celles qui sont parfois nulles reçoivent .nullable(), et les nombres entiers reçoivent .int(). Les schémas générés ont été vérifiés en analysant leurs propres échantillons avec Zod. Fonctionne 100 % localement dans votre navigateur, sans aucun téléversement de fichier vers le serveur.
- Catégorie
- Outils développeur
- Exécutions
- Dans votre navigateur
- Coût
- Gratuit · sans inscription
- Disponibilité
- Prêt à l'emploi
Fonctionne entièrement dans votre navigateur
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);
Chaque objet reçoit un schéma et un type inféré. Les clés absentes de certains objets reçoivent .optional(), celles qui sont parfois null reçoivent .nullable() et les nombres entiers reçoivent .int() ; assouplissez toute règle que votre API ne garantit pas.
Utiliser le schéma
Appelez Schema.parse(data) pour valider les données et lever une exception en cas d’erreur, ou Schema.safeParse(data) pour obtenir un résultat que vous pouvez vérifier sans bloc try/catch. Le type exporté par z.infer reste synchronisé avec le schéma lorsque vous le modifiez.
Si vous avez uniquement besoin de types à la compilation, JSON vers TypeScript fournit de simples interfaces ; pour valider des données avec un JSON Schema existant, utilisez le validateur JSON Schema.
Affiner les règles générées
L’exemple ne montre que ce qu’il contient : considérez donc le schéma comme un point de départ. Ajoutez .email(), .url() ou .datetime() aux chaînes concernées, z.enum([...]) aux champs dont les valeurs appartiennent à un ensemble fixe, et .min() ou .max() lorsque vos données sont soumises à des limites.
Comment l'utiliser
- Collez un échantillon JSON, idéalement un tableau contenant plusieurs enregistrements représentatifs.
- Nommez le type de niveau supérieur.
- Copiez les schémas et utilisez-les pour valider les données lors de l'exécution.
Confidentialité et limitations
Le JSON est converti dans votre navigateur et n'est jamais envoyé.
Outils associés
Questions fréquentes
Pourquoi utiliser Zod plutôt qu'une interface TypeScript ?
Une interface disparaît lors de la compilation du code et ne peut donc pas vérifier les données lors de l'exécution ; un schéma Zod vérifie les données et vous fournit le même type avec z.infer.
Les entiers doivent-ils vraiment recevoir .int() ?
Uniquement si votre API garantit des nombres entiers. Si un prix ou un score peut comporter une fraction, supprimez .int(), même si l'échantillon ne contient que des nombres entiers.
La conversion gère-t-elle les chaînes représentant des dates ou des adresses e-mail ?
Elles sont typées comme z.string() ; ajoutez des raffinements tels que .email(), .url() ou une vérification de date lorsque vos données l'exigent.
Outil gratuit · dans votre navigateur exécutions · aucun compte requis