Générateur de schéma JSON
Collez un ou plusieurs échantillons JSON et le générateur infère un schéma JSON que vous pouvez utiliser pour valider de nouvelles charges utiles. Détecte les types, marque les champs comme requis lorsqu’ils apparaissent dans chaque échantillon, infère des énumérations lorsque les valeurs proviennent d’un petit ensemble fermé, et produit une sortie conforme au brouillon JSON Schema 2020-12.
Comment générer un schéma JSON
-
1
Collez des documents échantillons
Une ou plusieurs charges utiles réelles, plus il y a de variété, plus le schéma inféré est précis.
-
2
Choisissez le brouillon
Brouillon 2020-12 (actuel), brouillon 07 (largement supporté), ou brouillon 04 (OpenAPI hérité).
-
3
Ajustez l'inférence
Activez l'inférence d'énumération, la stratégie des champs requis (intersection vs union), et si tous les champs doivent être marqués comme `requis` lorsqu'un seul échantillon est donné.
-
4
Générer
Le schéma est émis avec `$schema`, `title`, `type`, `properties`, et des `$ref` imbriqués pour les sous-objets répétés.
Ce que l’inférence fait bien
- Types : chaîne, nombre, entier, booléen, null, tableau, objet.
- Nullabilité : un champ qui est
nulldans un échantillon et une chaîne dans un autre devient["string", "null"]. - Éléments de tableau : les tableaux homogènes produisent un seul schéma
items; les tableaux hétérogènes produisentprefixItems. - Énumérations : si toutes les valeurs observées proviennent d’un petit ensemble (configurable, par défaut 10 valeurs distinctes), émet une
enum. - Requis : avec plusieurs échantillons, l’intersection des clés devient
requis; avec un échantillon, toutes les clés sont requises à moins que vous ne choisissiez de ne pas les inclure. - Formats : les chaînes correspondant aux dates ISO-8601, aux e-mails ou aux URI obtiennent un
formatinféré.
Ce que l’inférence ne peut pas savoir
- Intention vs exemple : un échantillon
age: 25infèretype: integer, mais ne peut pas savoir que vous acceptez égalementnull. Passez plusieurs échantillons qui couvrent les cas limites. - Contraintes :
minLength,maximum,pattern, vous devez les ajouter manuellement. L’inférence ne devine pas les limites à partir des échantillons. - Logique métier : “exactement un de ces trois champs doit être défini” nécessite
oneOf, non inférable. - Références : le générateur émet un schéma plat. Si vous souhaitez factoriser des formes répétées dans
$defs, faites-le après la génération.
Exemple de sortie
À partir d’un seul échantillon :
{ "name": "Alice", "age": 30, "tags": ["admin", "user"] }
Le schéma inféré (brouillon 2020-12) :
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"name": { "type": "string" },
"age": { "type": "integer" },
"tags": { "type": "array", "items": { "type": "string" } }
},
"required": ["name", "age", "tags"]
}
Erreurs courantes
- Inférer à partir d’un seul échantillon. Le schéma sera trop ajusté, chaque champ devient requis, aucune tolérance pour null. Alimentez toujours au moins 5-10 échantillons variés.
- Utiliser
integerquand vous vouliez direnumber. Si un échantillon a une décimale, le type inféré devientnumber; si tous sont entiers, il devientinteger. Pour les champs qui pourraient être l’un ou l’autre, incluez un échantillon décimal. - Oublier les champs optionnels. Un champ présent dans 4 des 5 échantillons mais manquant dans 1 devient optionnel, intentionnel. Si les 5 échantillons l’incluent, le schéma le marquera comme requis même s’il est en réalité optionnel dans votre API.
Questions fréquentes
Plus il y en a, mieux c’est, mais 5-10 échantillons variés produisent généralement un schéma raisonnable. Avec un seul échantillon, chaque champ devient requis et la nullabilité ne peut pas être inférée, fournissez toujours plusieurs variantes si vous le pouvez.
Brouillon 2020-12 par défaut. Les brouillons 07 et 04 sont disponibles pour la compatibilité OpenAPI 3.0 (qui utilise un sous-ensemble de brouillon 05/07).
Non. Inférer des contraintes sensées à partir des échantillons sur-ajusterait le schéma. Ajoutez minLength, maximum, pattern, etc. manuellement après la génération en fonction de vos règles métier.
Oui. Si vous collez un tableau JSON, le générateur traite chaque élément comme un échantillon séparé et produit un schéma décrivant un élément individuel, pas le tableau extérieur. Activez “traiter comme conteneur de tableau” si vous souhaitez la forme du tableau extérieur à la place.
Outils similaires
Référence de la table ASCII
Table ASCII complète de 0 à 127 avec décimal, hexadécimal, octal, binaire et référence numérique HTML pour chaque caractère, y compris les codes de contrôle comme NUL, LF et DEL.
Référence des caractères HTML
Liste consultable des entités HTML, de leurs codes nommés et numériques, et un copier-coller en un clic pour les caractères et symboles spéciaux.
Compteur de FPS
Mesurez les FPS du navigateur avec requestAnimationFrame : lissage, fréquence d'images min et max, seuil d'alerte et graphique facultatif. Tout se passe en local, sans envoi ni API.
Référence des raccourcis clavier
Recherchez les raccourcis par défaut documentés de VS Code, Chrome et Bash avec GNU Readline sous macOS, Windows et Linux.
Générateur de carte CSS
Créez le CSS d’un conteneur de carte : fond, bordure, rayon des angles, espacement intérieur et ombre douce, avec aperçu immédiat et code à copier-coller.
Générateur de flèches CSS
Créez localement une flèche CSS avec direction, couleur, taille et épaisseur de bordure, puis copiez la règle.
Outil disponible dans d’autres langues
- مولّد مخطط JSON [AR]
- JSON-schemagenerator [SV]
- Generator JSON Schema [ID]
- เครื่องมือสร้าง JSON Schema [TH]
- JSON-Schema-Generator [DE]
- JSONスキーマジェネレーター [JA]
- JSON 스키마 생성기 [KO]
- JSON-schemagenerator [NL]
- Generator schematów JSON [PL]
- Trình tạo JSON Schema [VI]
- Generador de Esquema JSON [ES]
- Gerador de Esquema JSON [PT]
- JSON Schema Generator [EN]
- Generatore di JSON Schema [IT]
- Генератор JSON-схем [RU]
- JSON Şema Oluşturucu [TR]
- JSON 模式生成器 [ZH]