Comment générer un JSON Schema
- Collez un exemple JSON représentatif. Les tableaux contenant plusieurs éléments donnent les meilleurs résultats, car leurs éléments sont fusionnés en un seul schéma.
- Choisissez la version du schéma (draft 2020-12 ou draft-07) et indiquez si les propriétés doivent être obligatoires, si les formats doivent être détectés et si les propriétés supplémentaires doivent être interdites.
- Copiez ou téléchargez le schéma, puis affinez-le à la main, par exemple en ajoutant des descriptions, des enums ou des valeurs minimales et maximales.
Ce que le générateur déduit
| Exemple JSON | Schéma |
|---|---|
"ada@example.com" | {"type": "string", "format": "email"} |
"2026-05-01T10:00:00Z" | format date-time (ainsi que date, time, uri, uuid, ipv4) |
42 / 4.5 | "integer" / "number" |
| une clé présente dans chaque objet | listée dans required |
| une clé absente de certains éléments du tableau | facultative (absente de required) |
[1, "a", null] | "items": {"type": ["string", "integer", "null"]} |
| objets mélangés à des valeurs simples | anyOf avec un schéma par sorte de valeur |
Qu'est-ce que JSON Schema ?
JSON Schema est un vocabulaire qui permet de décrire et de valider la structure de données JSON : quelles propriétés existent, quel est le type de chacune, lesquelles sont obligatoires et quelles valeurs sont autorisées. Il sert aux contrats d'API dans OpenAPI, aux fichiers de configuration, à la génération de formulaires et à la validation des sorties structurées des modèles d'IA. La version actuelle est la 2020-12 ; draft-07 reste pris en charge par de nombreux outils plus anciens. La spécification est publiée sur json-schema.org.
Affiner le schéma généré
- Ajoutez
titleetdescriptionpour documenter la signification de chaque champ. - Restreignez les valeurs avec
enum,minimum,maximum,maxLengthoupattern. - Cochez Interdire les propriétés supplémentaires (
additionalProperties: false) pour rejeter les clés inconnues. - Validez vos données avec Ajv en JavaScript ou avec le paquet
jsonschemaen Python.
Questions fréquentes
Quelle version de JSON Schema choisir ?
Utilisez draft 2020-12 pour les nouveaux projets : c'est la version actuelle et la base d'OpenAPI 3.1. Choisissez draft-07 si votre validateur ou vos outils ne prennent pas encore en charge la version 2020-12.
Pourquoi toutes mes propriétés sont-elles obligatoires ?
Avec un seul objet d'exemple, toutes les propriétés sont présentes : elles sont donc toutes marquées comme obligatoires. Utilisez un tableau avec plusieurs exemples variés, ou désactivez Marquer les propriétés comme obligatoires.
Le générateur peut-il détecter des enums ou des plages de valeurs ?
Non. Un seul exemple ne permet pas de savoir quelles valeurs sont autorisées en général : les enums, les valeurs minimales et maximales et les patterns doivent donc être ajoutés à la main.
Comment valider un JSON avec le schéma ?
Utilisez une bibliothèque de validation comme Ajv pour JavaScript ou jsonschema pour Python. De nombreux éditeurs de code valident aussi un fichier JSON par rapport au schéma référencé dans sa propriété $schema.