Aide

Validateur JSON Schema en ligne : erreurs avec chemin et raison

Avec ce validateur JSON Schema, vous collez un schéma et les données JSON à vérifier, et vous voyez tout de suite si elles correspondent. Sinon, chaque erreur est listée avec le chemin vers la valeur en échec et une raison claire, par exemple $.users[0].email. Les versions draft-07, 2019-09 et 2020-12 sont prises en charge, et les deux zones restent sur votre appareil.


Validation JSON Schema en ligne : mode d’emploi

  1. Collez votre schéma dans la zone Schéma JSON (elle affiche « Collez ici votre schéma JSON... »).
  2. Collez les données à vérifier dans la zone Données JSON.
  3. Lisez le Résultat. Il se met à jour au collage, ou environ 300 millisecondes après la dernière frappe : il n’y a rien sur quoi appuyer.
  4. Un Valide vert accompagné de « Les données JSON respectent le schéma. » signifie que les données passent. Un « Non valide : 3 erreurs » rouge liste chaque échec.
  5. Corrigez les données (ou le schéma) : le résultat change au fil de vos modifications.

Tant que les deux zones ne sont pas remplies, le résultat affiche « Collez un schéma et les données JSON pour les vérifier. » Si une zone contient du texte qui n’est pas du JSON, un encadré rouge JSON non valide donne la raison et « Ligne X, colonne Y », et le résultat vous dit quelle zone corriger. Pour remettre d’abord un document en ordre, « Formateur JSON » affiche les mêmes ligne et colonne pour un JSON cassé.

Lire les erreurs : chemin et raison

Chaque erreur comporte deux parties : un chemin et une raison. Le chemin commence à $, la racine de vos données, puis suit les noms de propriété avec des points et les positions de tableau entre crochets, en comptant à partir de 0. Exemple : le schéma exige id comme entier à partir de 1, email au format email et des tags sans doublon ; les données sont {"id":"7","email":"ana@","tags":["a","a"]}. Le résultat indique « Non valide : 3 erreurs » :

Toutes les erreurs sont listées, pas seulement la première : vous corrigez un document entier en une passe. Après 100 erreurs, la liste se termine par une ligne du type « et 250 autres erreurs non affichées » ; le nombre dans le titre reste exact. Si une propriété obligatoire (required) manque, l’erreur apparaît au chemin de l’objet qui devrait la contenir, par exemple $.users[0]. Les mots-clés plus rares (not, contains, propertyNames, dependentRequired et if/then/else) ont eux aussi une raison claire.

Mode strict : additionalproperties false

Par défaut, un schéma autorise les propriétés en plus : des données avec un champ nick que le schéma ne mentionne jamais passent quand même. Activez Mode strict (« Échoue si les données contiennent des propriétés que le schéma ne liste pas. ») pour repérer fautes de frappe et restes. Avec le schéma ci-dessus et les données {"id":1,"email":"ana@example.com","nick":"x"}, le résultat est « Valide » sans le mode, et « Non valide : 1 erreur » avec lui, à $ : Propriété inattendue « nick ».

Derrière l’interrupteur, l’outil ajoute unevaluatedProperties: false au schéma racine et à chaque schéma de propriété ou d’élément qui décrit un objet, y compris à travers $ref. Votre texte dans la zone n’est jamais modifié.

Vérificateur JSON Schema : versions, $ref et formats

L’outil lit la ligne "$schema" de votre schéma et vérifie les données avec les règles correspondantes : http://json-schema.org/draft-07/schema# est traité comme draft-07, https://json-schema.org/draft/2019-09/schema comme 2019-09 et https://json-schema.org/draft/2020-12/schema comme 2020-12. Sans "$schema", c’est 2020-12, ou 2019-09 si la syntaxe est ancienne, par exemple un tableau dans items. Draft-04, draft-06 ou toute autre adresse ne sont pas pris en charge, et le résultat indique l’adresse déclarée par le schéma. Cela compte, car certains mots-clés ont changé d’une version à l’autre : prefixItems relève de 2020-12, et definitions est devenu $defs en 2019-09. Les deux écritures du chemin de référence fonctionnent : #/$defs/name et #/definitions/name.

Limites et confidentialité


Questions fréquentes

Comment utiliser un validateur JSON Schema en ligne ?

Collez le schéma dans la zone « Schéma JSON » et les données à vérifier dans « Données JSON ». Le résultat apparaît tout de suite au collage, ou environ 300 millisecondes après la dernière frappe. Un « Valide » vert signifie que les données correspondent ; un « Non valide » rouge liste chaque erreur avec son chemin et sa raison. Il n’y a aucun bouton sur lequel appuyer.

Quelles versions de schéma JSON sont prises en charge : draft-07, 2019-09 ou 2020-12 ?

Les trois. La version vient de la déclaration de version que contient votre schéma. Un schéma sans cette déclaration est vérifié comme 2020-12, ou comme 2019-09 s’il utilise une syntaxe ancienne, par exemple un tableau dans items. Les schémas qui déclarent draft-04, draft-06 ou une autre adresse de version sont signalés comme non pris en charge.

Que signifie un chemin comme $.users[0].email ?

C’est l’emplacement de la valeur en échec. $ est la racine de vos données JSON, .users est la propriété users, [0] est le premier élément de ce tableau (le comptage commence à 0) et .email est la propriété qu’il contient. Un chemin comme $.users[2].address.zip mène à la valeur de la même façon, pas à pas.

Pourquoi une propriété obligatoire manquante est-elle signalée sur l’objet parent ?

Parce que la propriété est absente et qu’il n’y a rien à désigner. L’erreur est affichée au chemin de l’objet qui devrait la contenir, par exemple $.users[0], avec la raison « La propriété obligatoire « email » est absente. » Ajoutez la propriété à cet objet et l’erreur disparaît.

Comment faire rejeter les propriétés en trop par le schéma (additionalproperties false) ?

Activez « Mode strict ». Il ajoute unevaluatedProperties: false à la racine et à chaque schéma de propriété ou d’élément qui décrit un objet : toute propriété que le schéma ne liste pas échoue alors avec « Propriété inattendue ». Les schémas qui définissent déjà additionalProperties ou unevaluatedProperties gardent leur choix.

Les formats comme email, date-time, uri et uuid sont-ils vérifiés ?

Oui. Le mot-clé « format » est vérifié : une adresse comme ana@ échoue sur une chaîne avec « format » : « email » et affiche « Doit respecter le format « email ». » Les formats courants sont couverts, dont email, date, date-time, time, uri, uuid, ipv4, ipv6 et hostname.

Peut-on tester JSON Schema avec un $ref vers un autre fichier ou une URL ?

Seulement à l’intérieur du même schéma, comme #/$defs/name ou #/definitions/name. Rien n’est téléchargé : une référence comme https://example.com/address.json est donc signalée comme une référence que le schéma ne définit pas. Copiez le schéma référencé dans votre $defs et faites pointer le $ref dessus.

Que signifie « Le schéma lui-même n’est pas valide » ?

Le schéma enfreint les règles des schémas JSON, par exemple avec « type » : « strng » ou un « minimum » écrit sous forme de texte. Le résultat liste les problèmes avec des chemins qui pointent dans le schéma. Les données ne sont pas vérifiées tant que le schéma n’est pas corrigé.

Ce JSON Schema validator online envoie-t-il mon schéma ou mes données quelque part ?

Non. Le schéma et les données sont vérifiés entièrement dans votre navigateur. Rien n’est envoyé ni enregistré, et aucun compte n’est nécessaire.

Recommandés

Aide à garder les outils gratuits. ✨

Images non contractuelles. En tant que Partenaire Amazon, je réalise un bénéfice sur les achats remplissant les conditions requises.