Schéma et données à comparer

Validateur JSON SchemaRelier chaque valeur à sa contrainte

Essayez l’exemple fourni. La vérification du schéma seul ne lit pas les données ; la validation d’instance utilise les deux documents.

Validateur JSON Schema

JSON Schema

Données JSON

Entrées et références sont traitées dans ce navigateur, sans transfert des données ni téléchargement de références distantes.

Options de validation

Désactivé : format est une annotation. Activé : ajv-formats vérifie les formats connus ; les autres empêchent la compilation.

Références locales

Dix fichiers JSON au maximum, chacun avec un $id absolu unique sans # à la racine. Les noms de fichiers ne résolvent pas les références.

Aucun fichier de référence.

    Prêt pour un contrôle manuel.

    Le Validateur JSON Schema repère un texte à la place d’un entier, une clé obligatoire absente ou une propriété inattendue. Un JSON syntaxiquement correct peut enfreindre le contrat d’une API. Gardez la réponse capturée face aux règles pour déterminer ce qui doit changer.

    La validation JSON Schema conserve la différence entre une clé absente et une valeur null. Elle n’insère pas les valeurs default et ne transforme pas les chaînes numériques pour obtenir artificiellement un résultat favorable.

    Pourquoi ce Validateur JSON Schema ?

    Retrouver la règle depuis la valeur

    Le Validateur JSON Schema associe le chemin des données à celui du schéma. Un échec de type sur /users/0/age désigne la valeur ; une erreur required peut désigner l’objet parent. Les paramètres précisent alors quelle propriété manque.

    Un nœud de données mis en évidence rejoint la condition correspondante dans un autre arbre.

    Garder les définitions dans leurs fichiers

    Importez les dépendances sans recopier toutes les définitions dans le schéma principal. Chaque fichier est enregistré par son $id absolu. Les références relatives suivent l’URI de base ; le nom du fichier sert uniquement à l’affichage.

    Un schéma principal relie deux fichiers de référence locaux à un résultat commun.

    Préparer le contexte du contrôle

    01

    Accorder la déclaration et le dialecte

    Le choix initial est 2020-12. Une déclaration $schema contradictoire provoque une erreur. Les tuples utilisent un tableau items en draft-07, mais prefixItems en 2020-12 : changer le sélecteur ne convertit pas les règles.

    02

    Examiner le schéma sans instance

    Le contrôle du schéma analyse, vérifie et compile la racine et toutes les dépendances importées sans lire les données. Chaque fichier référencé exige un $id absolu unique sans fragment. Une référence manquante interrompt la compilation.

    03

    Relancer après une modification

    Ctrl/Cmd+Enter lance le contrôle manuel. Toute modification des données, options ou références annule l’ancienne tâche et bloque l’export. Exemple, effacement et suppression de référence passent par un aperçu avant application, avec restauration du précédent état par Annuler la modification.

    Les étapes d’une conclusion exploitable

    Trois dialectes explicitement sélectionnés

    Ce Validateur JSON Schema emploie Ajv pour draft-07, 2019-09 et 2020-12. Conditions et compositions suivent le dialecte choisi. Un mot-clé inconnu bloque la compilation au lieu de laisser passer une contrainte devenue inopérante.

    Activer les assertions de format

    Pour valider JSON, format reste désactivé au départ. L’option active les contrôles ajv-formats, notamment email, date-time, URI et UUID ; un format inconnu bloque alors la compilation. La règle indépendante pattern continue à être évaluée dans les deux cas.

    Distinguer règle invalide et donnée rejetée

    Le schéma JSON et l’instance peuvent échouer à des étapes différentes : syntaxe, métaschéma, compilation ou contrainte sur une valeur. Seul un rapport terminé est exportable. Les libellés sont français, les explications techniques du moteur restent en anglais.

    Lire les détails utiles ensemble

    Le moteur s’arrête tôt lorsque possible, mais une composition peut produire plusieurs erreurs de branche. Consultez instancePath, schemaPath, keyword et paramètres ensemble. La liste avance par 50 éléments ; le téléchargement inclut le rapport accepté complet.

    Limites à connaître

    Aucun téléchargement par une référence
    Seuls les renvois internes et les schémas importés sont résolus. Aucun contenu HTTP n’est chargé. Chaque fichier de référence doit porter un $id absolu sans # à la racine ; les doublons échouent. Un nom de fichier identique ne remplace pas cet identifiant.
    Aucune correction des valeurs
    Pas de conversion de type, d’insertion de default ni de suppression des propriétés supplémentaires. Tous les documents refusent JSON5, commentaires, virgules finales et clés dupliquées, afin de ne pas valider des valeurs silencieusement écrasées.
    Un profil limité aux dialectes annoncés
    Les métaschémas personnalisés, $vocabulary, $async, $data et mots-clés inconnus ne sont pas pris en charge. Fournissez un fragment compatible plutôt qu’un document OpenAPI entier. Ce contrôle ne certifie pas une spécification API complète. La compilation strictSchema d’Ajv peut aussi refuser les règles ignorées, comme then sans if. Les clés exactement nommées __proto__ dans properties, patternProperties ou dependencies ne sont pas prises en charge ; les clés homonymes des données ne sont pas concernées.
    Pas d’arithmétique à précision arbitraire
    Les valeurs non finies, entiers mathématiques hors plage sûre et décimaux modifiés par un aller-retour Number sont refusés ; 1.0 et 1e0 sont acceptés. Les décimaux ordinaires restent en IEEE 754 et multipleOf peut rencontrer des limites de calcul flottant.
    Budgets de contenu et de temps
    Chaque document accepte 500 000 caractères, 50 000 nœuds et une profondeur de 40. Le total est limité à 1 000 000 caractères et dix références. Après cinq secondes, le worker est arrêté : le résultat est inachevé, ni valide ni invalide.
    Le rapport n’énumère pas tout
    allErrors est désactivé : corrigez les problèmes signalés puis recommencez. Le rapport est plafonné à 1 000 erreurs et 500 000 caractères ; dépasser le budget fait échouer l’ensemble. Un seul exemple conforme ne garantit pas les futurs messages.

    Questions sur le Validateur JSON Schema

    Comment interpréter le chemin indiqué dans une erreur ?

    Il s’agit d’un JSON Pointer : /items/0/name vise name dans le premier élément de items. La chaîne vide désigne la racine, alors que / désigne une clé vide. Le chemin du schéma indique séparément la règle responsable.

    Quand choisir allOf, anyOf ou oneOf ?

    allOf exige toutes les branches, anyOf au moins une et oneOf exactement une. Deux branches compatibles avec le même document font donc échouer oneOf. Vérifiez les chevauchements avant de penser que le validateur se contredit.

    Que bloque additionalProperties avec la valeur false ?

    Cette règle refuse les propriétés que properties ou patternProperties n’acceptent pas dans le même contexte du schéma. Les déclarations placées dans une autre branche ne sont pas automatiquement visibles. L’outil signale les champs concernés sans les supprimer.

    La validation accepte-t-elle un tableau d’objets ?

    Oui. Déclarez type: array et placez la règle commune des objets sous items. Utilisez minItems, maxItems ou uniqueItems pour les contraintes de collection. Les tuples nécessitent la syntaxe du dialecte choisi.

    Comment réutiliser un sous-schéma avec $ref ?

    Les références internes fonctionnent, ainsi que les dépendances importées dont le $id absolu correspond à la cible. Aucun serveur distant n’est interrogé. Une référence absente fait échouer la compilation et doit être fournie avant de conclure.

    Un cas de schéma mérite vérification ?

    Essayer aussi un contre-exemple

    Utilisez le Validateur JSON Schema sur des cas acceptés et refusés. Conservez le dialecte et le réglage format avec le rapport pour comparer les comportements de vos environnements.