Générateur de JSON Schema
Générez un JSON Schema Draft-07 ou Draft 2020-12 complet à partir de n'importe quelle charge utile JSON instantanément dans votre navigateur. Déduit les types, les champs requis, les formats de chaîne et les structures d'objets imbriqués. Entièrement côté client : vos données ne quittent jamais votre appareil.
Paste or upload a JSON payload to instantly generate a complete JSON Schema. Supports Draft-07 and Draft 2020-12 with configurable required fields, format detection, and description placeholders. All processing happens locally in your browser.
Optional title added to the root schema object
Pourquoi utiliser notre générateur de JSON Schema ?
- Inférence de schéma instantanée : générez un JSON Schema complet à partir de n'importe quelle charge utile JSON en quelques millisecondes. Le moteur parcourt chaque objet et tableau imbriqué, déduit les types, détecte les formats de chaîne et construit un schéma entièrement structuré sans traitement côté serveur.
- Confidentialité totale des données : vos charges utiles JSON ne quittent jamais votre appareil. Toute la génération de schéma s'exécute localement dans votre navigateur, ce qui rend cet outil sûr pour les réponses d'API, les enregistrements de base de données et toutes les données métier sensibles que vous devez documenter.
- Draft-07 et Draft 2020-12 : choisissez entre JSON Schema Draft-07 (largement pris en charge par des validateurs comme AJV et jsonschema) et la spécification moderne Draft 2020-12. Les deux sorties incluent l'URI $schema correct, les tableaux required et les annotations de format.
- 100 % gratuit, sans limites : aucun abonnement, aucun plafond de taille de fichier, aucun quota d'utilisation et aucun compte requis. Générez des JSON Schemas à partir de charges utiles de toute taille autant de fois que nécessaire, entièrement gratuit pour toujours.
Cas d'usage courants du générateur de JSON Schema
- Documentation d'API : générez des JSON Schemas à partir de charges utiles réelles de réponses d'API pour documenter les corps de requête et de réponse dans les spécifications OpenAPI. Collez une réponse d'API réelle et obtenez un schéma prêt à l'emploi qui reflète fidèlement la structure de données renvoyée par vos endpoints.
- Validation à l'exécution : créez des schémas de validation pour AJV, jsonschema ou Zod à partir de données JSON existantes. Utilisez le schéma Draft-07 généré directement dans un middleware de validation Node.js, Python ou Go pour faire respecter les contrats de données aux frontières de l'API et empêcher les charges utiles malformées d'atteindre votre base de données.
- Génération de types TypeScript : utilisez le JSON Schema généré comme entrée pour des outils comme json-schema-to-typescript ou quicktype afin de produire automatiquement des interfaces et types TypeScript. Partez d'une charge utile JSON réelle et obtenez des interfaces précises et fortement typées sans les écrire à la main.
- Conception de schéma de base de données : générez des schémas à partir de documents MongoDB ou d'exports d'éléments DynamoDB pour comprendre la forme de vos données avant de concevoir des index ou de migrer vers une base relationnelle. Les champs requis et types déduits vous donnent un point de départ pour les définitions de colonnes et les contraintes.
- Configuration de constructeurs de formulaires : générez des JSON Schemas pour alimenter des constructeurs de formulaires dynamiques comme react-jsonschema-form ou JSON Forms. Ajoutez des espaces réservés de description grâce à l'option du générateur, puis remplissez-les pour créer des libellés et textes d'aide lisibles pour chaque champ de votre formulaire.
- Tests de contrat de données : capturez le schéma d'une réponse d'API reconnue comme valide et utilisez-le comme contrat dans des tests de contrat orientés consommateur avec Pact ou des frameworks similaires. Détectez les changements incompatibles lorsqu'un fournisseur supprime un champ requis ou modifie le type d'une propriété entre deux versions.
Qu'est-ce que le générateur de JSON Schema ?
Le générateur de JSON Schema analyse une charge utile JSON et produit un document JSON Schema complet et conforme aux standards, entièrement dans votre navigateur. Il prend en charge JSON Schema Draft-07 — la version la plus largement déployée, prise en charge par AJV, jsonschema et la plupart des outils OpenAPI — ainsi que la spécification moderne Draft 2020-12 utilisée par les validateurs et générateurs de code récents. Aucune donnée n'est jamais envoyée à un serveur.
Draft-07 vs Draft 2020-12 : Draft-07 utilise l'URI http://json-schema.org/draft-07/schema# et constitue le choix le plus sûr pour une compatibilité maximale avec les validateurs existants, l'outillage OpenAPI 3.0 et les générateurs de code. Draft 2020-12 utilise l'URI HTTPS https://json-schema.org/draft/2020-12/schema et introduit une sémantique plus propre pour $ref , unevaluatedProperties et les éléments de préfixe. Choisissez 2020-12 pour cibler AJV 8+, la chaîne d'outils json-schema-to-typescript v12+ ou tout validateur prenant explicitement en charge la spécification la plus récente.
Inférence de type
Le générateur parcourt chaque valeur du document d'entrée et la mappe vers le type JSON Schema correct. Les chaînes JSON deviennent "type": "string" , les entiers deviennent "type": "integer" , les nombres à virgule flottante deviennent "type": "number" , les booléens deviennent "type": "boolean" et les valeurs null deviennent "type": "null" . Les objets imbriqués sont traités récursivement en sous-schémas properties , et les tableaux sont analysés pour produire un schéma items .
Inférence des champs requis
Lorsque l'option « Déduire les champs requis » est activée, le générateur ajoute un tableau required à chaque schéma d'objet contenant chaque clé dont la valeur n'est pas null . Pour les tableaux d'objets avec l'option « Fusionner les schémas des éléments de tableau » activée, une clé n'est marquée requise que si elle apparaît dans chaque élément du tableau, ce qui vous donne un ensemble de champs requis conservateur qui reflète les données réelles plutôt qu'un seul échantillon.
Fusion des schémas d'éléments de tableau : lorsqu'un tableau contient plusieurs objets, l'option « Fusionner les schémas des éléments de tableau » combine tous les schémas d'éléments en un seul schéma représentatif. Les propriétés présentes dans chaque élément sont marquées requises ; celles présentes seulement dans certains éléments sont incluses mais non requises. Cela produit un schéma items plus précis que l'utilisation du seul premier élément, en particulier pour les tableaux hétérogènes issus de réponses d'API réelles.
Détection des formats de chaîne
Le générateur reconnaît automatiquement six formats de chaîne courants. Les chaînes date-time ISO 8601 comme 2024-03-15T10:30:00Z sont annotées avec format: date-time . Les dates simples comme 2024-03-15 reçoivent format: date . Les adresses e-mail, les URI HTTP/HTTPS, les chaînes UUID v4 et les adresses IPv4 sont chacune détectées et annotées avec leurs mots-clés de format respectifs. Désactivez cette option si vous voulez que toutes les chaînes restent non annotées.
Espaces réservés de description : activer « Ajouter des espaces réservés de description » insère une chaîne description vide sur chaque propriété et chaque schéma d'objet. C'est utile lorsque vous prévoyez d'utiliser le schéma généré comme point de départ pour une documentation d'API ou une configuration de constructeur de formulaires : vous pouvez remplir les descriptions sans avoir à ajouter les clés manuellement à chaque propriété.
Foire aux questions
Un JSON Schema est un vocabulaire qui décrit la structure, les types et les contraintes d'un document JSON. Il sert à la validation à l'exécution, à la documentation d'API dans les spécifications OpenAPI, à la génération de types TypeScript et à la configuration de constructeurs de formulaires. Ce générateur de JSON Schema en crée un automatiquement à partir de n'importe quelle charge utile JSON existante.
Draft-07 est la version la plus largement prise en charge, compatible avec AJV, jsonschema et l'outillage OpenAPI 3.0. Draft 2020-12 est la spécification la plus récente, avec une sémantique $ref plus propre et de nouveaux mots-clés comme unevaluatedProperties. Choisissez Draft-07 pour une compatibilité maximale et Draft 2020-12 pour cibler des validateurs modernes comme AJV 8+.
Lorsque « Déduire les champs requis » est activé, chaque propriété dont la valeur n'est pas null est ajoutée au tableau required. Pour les tableaux d'objets avec la fusion activée, un champ n'est marqué requis que s'il apparaît dans chaque élément du tableau. Cela donne un ensemble de champs requis conservateur qui reflète les données réelles plutôt qu'un seul échantillon.
Le générateur détecte six formats : date-time (ISO 8601 avec heure), date (date ISO 8601 seule), adresses e-mail, URI HTTP/HTTPS, chaînes UUID v4 et adresses IPv4. Chacun est annoté avec le mot-clé format correspondant de JSON Schema. Désactivez « Détecter les formats de chaîne » si vous voulez que toutes les chaînes restent non annotées.
Lorsque cette option est activée, le générateur combine les schémas de tous les objets d'un tableau en un seul schéma items représentatif. Les propriétés présentes dans chaque élément sont marquées requises ; celles présentes seulement dans certains éléments sont incluses mais facultatives. Cela produit un schéma plus précis que l'utilisation du seul premier élément du tableau.
Oui. Le schéma Draft-07 généré est immédiatement utilisable avec AJV, jsonschema (Python) et la plupart des autres validateurs. Copiez la sortie, enregistrez-la dans un fichier .json et transmettez-la à votre validateur. Pour AJV 8+, vous pouvez aussi utiliser la sortie Draft 2020-12 en sélectionnant cette option avant de générer.
Totalement. Toute la génération de schéma s'exécute localement dans votre navigateur sans envoi au serveur. Vos charges utiles JSON, réponses d'API et enregistrements de base de données ne quittent jamais votre appareil. L'outil est donc sûr pour les données métier sensibles, les identifiants et toute structure JSON propriétaire que vous devez documenter.