Générez JSON Schema depuis des documents JSON complets
Générez un JSON Schema à partir de vos exemples. Vérifiez les champs obligatoires, contrôlez les exemples et téléchargez le schéma.
Espace de travail de l’outil
Générateur de JSON Schema
Activez JavaScript pour déduire un schéma localement dans votre navigateur.
Chaque éditeur contient un document JSON complet. Un tableau à la racine reste un tableau. Les exemples orientent le schéma ; ils ne prouvent pas les règles de votre domaine.
Jusqu’à 20 exemples ; 250 000 unités UTF-16 par exemple et 500 000 au total ; 1 000 000 octets par fichier ; profondeur 20 ; 50 000 nœuds source au total ; 2 000 nœuds déduits ; schéma de 100 000 unités UTF-16 au maximum. Les budgets de travail peuvent être atteints avant.
Le traitement reste dans votre navigateur. Les exemples ne sont ni envoyés ni enregistrés.
1 exemple(s).
Saisissez du JSON dans chaque exemple.
Des diagnostics supplémentaires ont été omis après avoir atteint un budget de diagnostics.
Ce navigateur ne peut pas démarrer un Worker. Utilisez un navigateur compatible pour traiter les exemples localement.
Champs et types déduits
Null est une valeur présente ; il ne rend pas un champ facultatif. La présence se mesure uniquement parmi les objets à cet emplacement.
Les branches objet et tableau sont combinées. Le schéma peut accepter des combinaisons supplémentaires car il ne déduit pas les relations entre champs.
Aucun candidat de format sur cette page.
Les suggestions exigent au moins deux chaînes, chacune de 1 024 unités UTF-16 au maximum, et aucun contre-exemple. Les exemples identiques comptent comme observations. Les formats ne sont ni émis ni validés en v1.
Le schéma n’accepte pas tous les exemples. La copie et le téléchargement incluent le schéma complet avec vos champs obligatoires choisis manuellement.
Compatibilité des exemples
Copie manuelle
Sélectionnez la sortie complète et copiez-la au clavier. Fermez cette aide pour revenir au bouton Copier.
Copiez le schéma et collez-le manuellement dans le validateur. Ces liens ne transfèrent ni exemples ni schéma.
Analysez les documents avant de générer
Collez un document JSON complet dans chaque éditeur ou ouvrez un fichier local .json UTF-8. Ajoutez jusqu’à vingt exemples, cliquez sur Analyser les exemples, vérifiez les champs, puis choisissez Générer le schéma.
Tous les exemples doivent être du JSON strict valide. Corrigez les éditeurs vides, clés dupliquées, commentaires, JSONC/JSON5 ou nombres perdant en précision avant de continuer ; l’outil n’ignore pas les exemples en erreur.
Un tableau dans un éditeur compte comme un exemple, et tous ses éléments contribuent au schéma. Plusieurs éditeurs produisent un schéma commun à leurs documents. Un exemple peut aussi être une chaîne, un nombre, un booléen ou null.
Exemple de tableau :
[{"id":1},{"id":2,"nombre":"Ana"}]
Avec les champs obligatoires déduits, le tableau complet satisfait ce schéma :
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"nombre": {
"type": "string"
}
},
"required": [
"id"
],
"additionalProperties": true
}
}
Choisir les champs obligatoires
Dans l’exemple, id apparaît dans les deux objets : il est donc obligatoire par défaut. nombre n’apparaît que dans un objet et reste facultatif. Si vous rendez nombre obligatoire, le premier objet ne passe plus : le rapport indique /0, avec la règle required en /items/required. Le schéma reste exportable, mais un avertissement signale que certains exemples ne le respectent pas.
Une propriété absente et une propriété valant null sont deux cas différents. Dans [{"x":null},{"x":"a"},{}], x est facultatif et accepte null ou une chaîne. Retirez l’objet vide : x devient obligatoire tout en acceptant encore null.
Les champs obligatoires sont déduits de vos exemples, pas des règles de votre application. Pour les objets imbriqués, seuls ceux situés au même emplacement sont comparés. Vérifiez les choix avant d’utiliser le schéma. Rétablir les champs déduits supprime tous les choix manuels, y compris ceux des autres pages.
Un tableau vide [] produit type: "array" avec items: {}, car il ne renseigne pas sur le type de ses éléments. Un objet vide {} ne révèle aucune propriété. Les entiers et les fractions sont combinés en number ; les autres mélanges forment une union type. Le schéma peut donc accepter des combinaisons absentes de vos exemples.
Ce que vérifie le schéma généré
La sortie utilise JSON Schema draft-07. Elle décrit les types, les propriétés d’objets, les champs obligatoires et les éléments de tableaux. Les objets acceptent des propriétés supplémentaires avec additionalProperties: true. Vous pouvez ajouter title et description à la racine.
L’outil ne déduit pas de listes de valeurs autorisées, de plages numériques, de motifs, de références, de tuples ni de conditions avec anyOf, oneOf ou allOf. Ajoutez ces règles si votre application en a besoin.
Les suggestions de format peuvent repérer des adresses e-mail ASCII, des URI HTTP(S) absolues et des dates écrites sous la forme YYYY-MM-DD. Activez-les avant l’analyse. Au moins deux chaînes doivent correspondre ; un contre-exemple ou une chaîne dépassant 1 024 unités UTF-16 retire la suggestion. Les suggestions n’ajoutent pas de règle format au schéma, et la vérification intégrée ne valide pas les formats.
Exportation et limites
La copie et le téléchargement incluent tout le schéma, quelle que soit la page de champs affichée. Le fichier est nommé schema.json, avec le type MIME application/schema+json, en UTF-8 sans BOM. Vous pouvez choisir une indentation de deux ou quatre espaces. Les fins de ligne sont LF, sans saut final. Si le presse-papiers échoue, copiez le champ de sortie complète.
| Limite | Maximum |
|---|---|
| Exemples | 20 |
| Fichier | 1 000 000 octets |
| Texte par exemple / total | 250 000 / 500 000 unités UTF-16 |
| Conteneurs imbriqués par exemple | 20 niveaux |
| Valeurs par exemple / total | 25 000 / 50 000 |
| Propriétés déduites | 2 000 |
| Texte du schéma | 100 000 unités UTF-16 |
| Titre / description | 256 / 2 000 unités UTF-16 |
| Durée d’analyse ou de génération | 8 secondes |
Les exemples complexes ou les noms de champs très longs peuvent atteindre d’autres limites de traitement plus tôt. Une opération échouée ou annulée ne fournit pas de schéma partiel. La liste des champs affiche jusqu’à 25 entrées par page.
Les fichiers doivent utiliser UTF-8. Un BOM initial est retiré avec un avertissement ; un second est invalide. Modifier les exemples ou les suggestions de format demande une nouvelle analyse et réinitialise vos choix de champs obligatoires. Changer les champs obligatoires ou les options du schéma demande de générer à nouveau la sortie.
Le traitement utilise un Worker local et nécessite JavaScript. Les exemples ne sont ni envoyés ni enregistrés. Pour utiliser le validateur associé, copiez et collez le schéma ; les liens ne transfèrent pas vos données.