Générer un schéma JSON
Le Générateur de JSON Schema déduit automatiquement des spécifications JSON Schema (Draft 2020-12) standard à partir d’un ou plusieurs payloads JSON d’exemple. Il propose des heuristiques paramétrables pour les champs requis, l’élargissement des types à travers des échantillons hétérogènes, la détection automatique des formats (email, date-time, uuid, uri), la découverte d’énums, et la validation en direct de documents contre le schéma déduit, sur la même page.
✓Test de validation aller-retour
Validez les documents JSON en temps réel avec le schéma généré.
Comment fonctionne Générer un schéma JSON ?
Rédiger des définitions JSON Schema à la main est répétitif, verbeux et source d’erreurs. Le moteur d’inférence de schéma de ToolsByUs automatise cela en effectuant une agrégation structurelle multi-passes sur vos échantillons d’entrée :
- Inférence et élargissement de types : examine récursivement les valeurs de données. Quand des types scalaires différents sont observés selon les échantillons pour une même clé (par exemple integer et string), l’élargissement de types produit un tableau de types autorisés
type: ["integer", "string"]au lieu de rejeter des variations valides. - Heuristiques des champs requis : calcule des ratios de fréquence. Les propriétés présentes dans 100% des enregistrements d’échantillon analysés sont cataloguées dans le tableau de contrainte
required. - Correspondance de formats et de sémantique : fait correspondre les champs de chaînes aux normes RFC pour
date-time(ISO 8601),email(RFC 5322),uuid(RFC 4122/9562) eturi(RFC 3986). - Extraction d’énums : détecte les valeurs répétitives à faible cardinalité sous un seuil paramétrable (par exemple les champs status) et génère des ensembles
enumstricts.
Plus important encore, le générateur inclut un Round-Trip Validator interactif : vous pouvez coller n’importe quel payload candidat et le tester immédiatement contre le schéma généré pour vérifier la conformité.
Exemple de payload en entrée
{"id": "usr_101", "email": "[email protected]", "active": true}Exemple de sortie
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": ["id", "email", "active"],
"properties": {
"id": { "type": "string" },
"email": { "type": "string", "format": "email" },
"active": { "type": "boolean" }
}
}Quelles options et quels cas limites Générer un schéma JSON prend en charge ?
| Paramètre | Type | Valeur par défaut | Comportement et cas limites |
|---|---|---|---|
| inferRequired | Booléen | true | Marque automatiquement comme obligatoires les propriétés qui apparaissent dans chaque exemple fourni. |
| typeWidening | Booléen | true | Permet aux champs avec plusieurs types observés de supporter n’importe lequel de ces types plutôt que d’en imposer un seul. |
| detectFormats | Booléen | true | Inspecte les modèles de chaînes de caractères pour les formats RFC : email, date-heure, uuid et uri. |
| enumThreshold | Entier | 4 | Nombre maximal de valeurs uniques pour classifier une propriété de type chaîne/numérique comme un ensemble d’énumérations fixes. |
| Version du schéma | Standard | Draft 2020-12 | Émet un schéma JSON conforme et moderne à la spécification de projet de schéma JSON 2020-12. |
Questions fréquentes
Quelle version de JSON Schema cet outil génère-t-il ?
Cet outil produit du JSON Schema Draft 2020-12, la dernière spécification stable recommandée par l’organisation JSON Schema. Il est compatible avec les bibliothèques de validation modernes en Python, Node.js, Go, Rust et Java.
Puis-je fournir plusieurs documents d’exemple ?
Oui ! Vous pouvez coller aussi bien un objet JSON unique qu’un tableau JSON de plusieurs objets. Le générateur agrège les formes de propriétés de tous les échantillons pour produire des schémas complets avec types union et des heuristiques de champs requis précises.
Comment fonctionne la validation en direct ?
Le panneau inférieur exécute un validateur de schéma en temps réel sur le schéma actuellement généré. Quand vous modifiez les données d’exemple ou les options ci-dessus, le document de test est immédiatement validé, avec les chemins et mots-clés exacts des violations affichés.
Mon schéma d’exemple ou mes données sont-ils transmis à un serveur ?
Non. Toute l’inférence de schéma et la validation s’exécutent à 100% localement dans votre navigateur, sans aucune requête réseau, préservant la confidentialité totale des schémas propriétaires et des journaux de production.
Pourquoi un champ est-il marqué requis alors que mon API le considère comme facultatif ?
Parce que l’inférence ne voit que les échantillons que vous lui avez donnés, et qu’une propriété présente dans chaque échantillon est présumée requise. Collez un tableau de documents qui inclut les cas où le champ est réellement absent et il sortira automatiquement de la liste des requis — c’est la façon la plus rapide d’apprendre au générateur quels champs sont facultatifs.
Puis-je obtenir des types TypeScript plutôt qu’un schéma ?
Oui, avec un autre outil : le convertisseur JSON vers TypeScript prend le même document d’exemple et produit directement des interfaces. Un schéma est l’artefact le plus adapté quand vous voulez une validation à l’exécution dans plusieurs langages ; les types générés sont préférables quand le seul consommateur est une base de code TypeScript et que la vérification a lieu à la compilation.