Générateur de JSON Schema

Générez automatiquement un JSON Schema (Draft-07) à partir de n'importe quel exemple JSON. Collez votre JSON et obtenez un schéma valide instantanément — sans inscription.

Indentation :

JSON d'entrée

Schéma généré

Votre JSON Schema apparaîtra ici

Share this tool

Help others discover JSON Schema Generator

À propos du Générateur de JSON Schema

Comment ça fonctionne

  • Collez ou saisissez n'importe quel JSON valide dans le panneau gauche
  • L'outil analyse récursivement chaque clé et valeur
  • Les types sont inférés : string, number, integer, boolean, object, array, null
  • Toutes les clés présentes sont listées dans le tableau "required"
  • Le schéma Draft-07 résultant est affiché à droite

Cas d'utilisation courants

  • Démarrer la documentation API et les schémas OpenAPI
  • Valider les payloads JSON dans les services backend
  • Générer des types TypeScript avec des outils comme json-schema-to-typescript
  • Créer des contrats de données stricts entre microservices
  • Documenter les formats de fichiers de configuration

Questions fréquentes

Qu'est-ce qu'un JSON Schema ?

Un JSON Schema est un vocabulaire qui permet d'annoter et de valider des documents JSON. Il décrit la structure, les types et les contraintes de vos données JSON, facilitant la validation des entrées, la génération de documentation et le partage de contrats de données entre services.

Quel brouillon de JSON Schema cet outil génère-t-il ?

Cet outil génère JSON Schema Draft-07, la version la plus largement supportée. Le Draft-07 est compatible avec la majorité des validateurs, éditeurs et outils API utilisés aujourd'hui, notamment VS Code, Postman et OpenAPI 3.x.

Comment fonctionne l'inférence du schéma ?

L'outil inspecte récursivement chaque valeur de votre JSON. Pour chaque clé, il détermine le type JSON (string, number, integer, boolean, array, object ou null), collecte toutes les clés uniques dans les objets et les marque comme requises. Aucune donnée n'est envoyée à un serveur.

Toutes les clés sont-elles marquées comme requises ?

Par défaut, chaque clé présente dans le JSON d'exemple est ajoutée au tableau "required". Si vos données réelles peuvent avoir des champs optionnels, supprimez simplement ces clés du tableau required dans le schéma généré avant de l'utiliser.

Que se passe-t-il avec les valeurs nulles ?

Lorsqu'une valeur est null dans le JSON d'exemple, l'outil génère un type "null". Si le champ peut contenir d'autres types, modifiez manuellement le type en tableau comme ["string", "null"] après la génération du schéma.

Puis-je générer un schéma à partir d'un tableau JSON à la racine ?

Oui. Si votre JSON est un tableau de niveau supérieur, le schéma généré aura le type "array" avec un sous-schéma "items" inféré du premier élément.

Mes données JSON sont-elles envoyées à un serveur ?

Non. Tout le traitement se fait entièrement dans votre navigateur via JavaScript côté client. Votre JSON n'est jamais transmis à nos serveurs, donc les données sensibles restent privées.

Puis-je utiliser le schéma généré dans des spécifications OpenAPI / Swagger ?

Oui. OpenAPI 3.x utilise un sur-ensemble de JSON Schema Draft-07, donc le résultat de cet outil peut être collé directement dans la section "schema" d'un composant OpenAPI avec de légères modifications.

Que se passe-t-il si mon JSON a des objets profondément imbriqués ?

L'outil prend entièrement en charge les structures JSON arbitrairement imbriquées. Chaque objet imbriqué obtient son propre bloc "properties" avec les annotations de type correctes.

Quelle est la différence entre "number" et "integer" dans JSON Schema ?

JSON Schema distingue "integer" (entiers comme 1, 42, -7) et "number" (toute valeur numérique incluant les décimales comme 3.14). Cet outil utilise automatiquement "integer" quand la valeur n'a pas de partie fractionnaire.

Puis-je personnaliser le schéma après l'avoir généré ?

Absolument. La sortie est du texte modifiable. Les personnalisations courantes incluent l'ajout de champs "description", le renforcement des contraintes de chaînes avec "minLength"/"maxLength" ou "pattern", l'ajout de tableaux "enum" et l'ajustement de la liste "required".

Que fait l'option "additionalProperties: false" ?

Lorsqu'elle est activée, "additionalProperties: false" est ajouté à chaque objet du schéma. Cela indique aux validateurs de rejeter toute clé non listée explicitement dans "properties". Utile pour des contrats API stricts.

Share ToolsZone

Help others discover these free tools!

Partager cette page

Générateur de JSON Schema — Inférer un schéma depuis JSON en ligne