Des exemples au contrat

Générateur JSON Schemarepérer les variantes avant de contraindre

Essayez l’exemple. Choisissez plusieurs échantillons seulement si chaque élément du tableau extérieur représente un document distinct.

Générateur JSON Schema

Échantillons JSON

Schéma produit

Traitement dans ce navigateur, sans envoi ni stockage des échantillons.

Options d’inférence

Un exemple n’est pas un contrat métier. Tous requis et enum peuvent imposer des restrictions excessives.

1 exemples · 7 propriétés · 0 enums · 0 omis

Le Générateur JSON Schema fournit un point de départ quand la documentation se résume à quelques réponses d’API. Une réponse complète ne prouve pas que les suivantes contiendront les mêmes clés. Des exemples contrastés rendent ces écarts visibles.

Une clé absente et une valeur null ne signifient pas la même chose. required porte sur la présence de la propriété ; son type porte sur sa valeur. Vous pouvez donc rendre une propriété obligatoire tout en autorisant null.

Pourquoi ce Générateur JSON Schema ?

Réunir les variantes au même endroit

Le Générateur JSON Schema examine tous les éléments d’un tableau à la même position structurelle. Une clé manquante quitte les champs requis communs, tandis qu’un null explicite s’ajoute au type. Les objets de chemins différents restent séparés.

Deux fiches rejoignent un arbre commun ; une branche absente devient pointillée et null conserve un repère creux.

Préserver les règles ajoutées à la main

Passer en édition arrête la génération automatique. Une nouvelle génération propose un candidat séparé, sans effacer vos ajouts. Appliquer remplace un schéma ; Annuler l’action restaure ensemble saisie, options et résultat.

Un arbre généré passe par une relecture au crayon ; la proposition et la version précédente sont gardées côte à côte.

Trois choix qui changent le résultat

01

Choisir le rôle du tableau extérieur

En document unique, le tableau reste le type racine. En plusieurs échantillons, ses éléments sont des documents indépendants à fusionner. Pour comparer des documents qui sont eux-mêmes des tableaux, utilisez un tableau de tableaux.

02

Séparer présence et valeur vide

Les champs requis communs apparaissent dans chaque objet à cette position. Tout rendre obligatoire peut rejeter un exemple initial incomplet. Autoriser null ne retire aucune propriété de required.

03

Actualiser sans écraser les retouches

Modifier la saisie ou les options désactive immédiatement l’export. La génération automatique attend 350 ms ; en manuel, utilisez Ctrl/Cmd+Entrée. Après retouche, une nouvelle proposition doit être relue puis appliquée.

Les décisions prises pendant l’inférence

Trois versions, un sous-ensemble commun

Le Générateur JSON Schema propose Draft 7, 2019-09 et 2020-12. Les formes utilisées pour type, properties, required, enum et items sont communes. Le choix change donc l’URI $schema, sans convertir un schéma existant complexe.

Des nombres évalués sans arrondi

1.0 et 100e-2 sont des integer selon leur valeur mathématique. La présence d’une fraction conduit à number. Les grands nombres conservent leur écriture ; les valeurs égales d’un enum sont dédupliquées sans passer par Number.

Des énumérations sur demande

L’option est désactivée au départ. Chaque position scalaire peut recevoir au plus 20 valeurs distinctes, y compris le null ajouté. Au-delà, l’enum entier est omis et compté dans l’état ; aucun sous-ensemble trompeur n’est conservé.

JSON vers JSON Schema avec relecture

Le schéma inféré reste modifiable pour ajouter les contraintes métier. Les tableaux vides donnent items: {} faute d’éléments à observer. L’éditeur contrôle seulement la syntaxe JSON et la forme de la racine, pas toute la sémantique du schéma.

Les limites d’un contrat déduit

Aucun format deviné
Dates et adresses restent des chaînes. format, pattern, bornes, longueurs et valeurs par défaut ne sont pas déduits. Les propriétés supplémentaires restent autorisées. Ces restrictions doivent provenir du métier, pas du hasard des exemples.
Les variantes invisibles restent inconnues
Des null seuls ne révèlent pas le type non vide ; des tableaux vides ne révèlent pas le type des éléments. Les corrélations entre champs ne sont pas conservées et des combinaisons jamais observées peuvent être admises.
Pas de tuples ni de premier élément seul
Tous les éléments alimentent un seul items. L’ordre ne devient pas un contrat de positions fixes. Ni références ni règles conditionnelles ne sont créées. L’option Tous requis peut volontairement exclure une réponse initiale incomplète.
Une édition ne vaut pas validation
La sortie doit être un objet ou un booléen JSON, sans erreur de syntaxe ni clé dupliquée. Aucun métaschéma, aucune référence externe et aucun échantillon métier ne sont évalués. Un mot-clé mal employé peut rester exportable.
Des budgets pour le document entier
Entrée et sortie : 500 000 caractères et 50 000 nœuds chacune. Profondeur maximale : 40 en entrée, 100 dans la sortie éditée. Le mode multiple accepte 1 à 1 000 exemples. Commentaires, virgules finales, NDJSON, fichiers et URL sont exclus. Un résultat trop volumineux est refusé en entier.

Générateur JSON Schema : vos questions

Puis-je faire confiance à un schéma inféré en production ?

Il doit être relu. Un ensemble d’exemples ne démontre pas tous les cas autorisés ou interdits. Complétez les règles métier, puis testez des données valides et invalides avec le validateur de votre projet.

Comment choisit-il les champs requis ?

Par défaut, seules les propriétés présentes dans tous les objets à cette position sont requises. null compte comme une présence. Les options Tous requis et Aucun requis permettent de choisir une politique différente.

Quelle différence entre Draft 2020-12 et Draft 7 ?

Ces drafts diffèrent notamment pour les tuples et certains mots-clés. Ici, seule leur partie commune est générée ; le choix modifie la déclaration $schema. Sélectionnez la version comprise par votre validateur.

Pourquoi ma date est-elle détectée comme date-time et non date ?

Ici, aucune date n’est détectée automatiquement : elle reste string. Si le contrat exige date ou date-time, ajoutez format manuellement et vérifiez son traitement dans votre environnement.

Le schéma préserve-t-il les champs de type énumération ?

Seulement si vous activez enum. Les positions scalaires peuvent alors recueillir jusqu’à 20 valeurs distinctes. Si null porte le total à 21, l’enum est également omis. Cette option peut restreindre abusivement un simple exemple.

Un résultat d’inférence à vérifier ?

Relire avant de valider les données

Utilisez le Générateur JSON Schema avec des réponses variées, puis ajoutez les exigences métier après examen des champs absents et des valeurs autorisées.