Utilisez ce générateur en ligne pour créer des définitions JSON Schema à partir d’échantillons JSON pour validation, documentation et contrats d’API.
Étape 1 – Fournir un exemple JSON
- Collez un objet ou un array JSON représentatif dans l’éditeur de gauche.
- Utilisez des données réelles de production pour que le schéma reflète correctement votre structure.
- Incluez des exemples couvrant toutes les valeurs et structures imbriquées possibles.
Étape 2 – Vérifier le schéma généré
- Le schéma apparaît à droite avec types inférés, champs requis et définitions de structure.
- Vérifiez les items d’array, objets imbriqués et types de propriétés.
- Assurez-vous que les champs optionnels vs requis sont correctement détectés.
Étape 3 – Personnaliser le schéma (optionnel)
- Copiez le schéma généré et ajoutez des règles, descriptions ou contraintes.
- Ajoutez des
enum valeurs et contraintes, minLength/maxLength, ou pattern des regex si nécessaire. - Définissez
oneOf ou anyOf pour les types union.
Étape 4 – Utiliser le schéma
- Téléchargez ou copiez le schéma pour des validateurs JSON, de la documentation d’API ou des générateurs de code.
- Intégrez avec des bibliothèques comme Ajv (JavaScript), jsonschema (Python) ou équivalent.
- Référencez le schéma dans OpenAPI/Swagger ou utilisez-le pour générer du code type-safe.
Astuces rapides pour la génération de schémas
- Validez toujours le schéma généré avec un validateur JSON Schema ou votre bibliothèque runtime avant la production.
- Utilisez des exemples réalistes afin que le générateur infère les bons types et champs requis.
- Conservez un schéma canonique par payload (ex. request/response d’API) pour éviter la dérive entre environnements.
Note sur le support des mots-clés
Si vous ajoutez des mots-clés avancés comme $ref, anyOf, oneOf, ou allOf, validez avec un validateur JSON Schema complet (par ex. Ajv) et envisagez de dereference avant de générer des données mock.
Exemple : JSON vers JSON Schema
// JSON input
{
"id": 1,
"name": "Maeve Winters",
"email": "[email protected]",
"active": true,
"tags": ["developer", "backend"]
}
// Generated JSON Schema (simplified)
{
"type": "object",
"properties": {
"id": { "type": "number" },
"name": { "type": "string" },
"email": { "type": "string" },
"active": { "type": "boolean" },
"tags": {
"type": "array",
"items": { "type": "string" }
}
},
"required": ["id", "name", "email", "active", "tags"]
}