Validateur de schéma JSON
Validez un document JSON avec un schéma JSON dans votre navigateur. Chaque erreur est listée avec son chemin, son mot-clé et sa place dans le schéma.
| # | Chemin dans le document | Mot-clé | Message | Chemin dans le schéma |
|---|
Comment valider un JSON avec un schéma
- Collez votre schéma dans Schéma JSON et vos données dans Document JSON, ou choisissez un cas tout prêt dans Exemple.
- Laissez Version sur Automatique ($schema) pour appliquer la version indiquée par le
$schemadu schéma, ou imposez draft 4, 7, 2019-09 ou 2020-12. - La validation se fait pendant la saisie ; Valider la relance. Formater les deux réindente les deux textes.
- Lisez le résultat : une ligne verte si le document est conforme, sinon un tableau des erreurs.
Lire le tableau des erreurs
Chaque ligne correspond à une règle non respectée :
- Chemin dans le document est un pointeur JSON vers la valeur fautive.
/roles/1désigne le deuxième élément deroles;(racine)désigne le document entier. - Mot-clé est la règle du schéma qui échoue :
type,required,minimum,pattern,format,additionalProperties, etc. - Message explique l’échec, par exemple « 0 est inférieur à 1. »
- Chemin dans le schéma situe le mot-clé dans le schéma, comme
/properties/id/minimum, pour retrouver la règle en un coup d’œil.
La validation ne s’arrête pas au premier problème : toutes les erreurs sont listées. Quand une propriété d’objet échoue, le validateur produit une erreur de synthèse (« La propriété « id » ne respecte pas son schéma ») suivie de la cause précise. Afficher seulement les erreurs les plus précises masque ces synthèses ; décochez la case pour voir toute la chaîne. Les erreurs anyOf et oneOf restent toujours affichées avec celles de chaque branche, car elles n’ont de sens qu’ensemble.
Ce qui est pris en charge
- Versions : draft 4, 6 (validé avec les règles du draft 7), 7, 2019-09 et 2020-12, y compris
$defs/definitions, les$reflocales,if/then/else,dependentRequired,dependentSchemas,prefixItems,unevaluatedPropertiesetunevaluatedItems. - Formats :
date,time,date-time,duration,email,hostname,ipv4,ipv6,uri,uri-reference,uri-template,uuid,regex,json-pointeretrelative-json-pointersont vérifiés. Les formats inconnus sont ignorés, comme le permet la spécification. - Références : un
$refpeut viser n’importe quel endroit du schéma, y compris un$idqu’il déclare. Aucun schéma distant n’est téléchargé : une référence vers une autre URL est signalée comme non résolue.
Cet outil valide des documents avec votre schéma. Il ne vérifie pas que le schéma respecte lui-même le méta-schéma, mais il signale les noms de type inconnus comme "strin" ou "int", une faute de frappe fréquente que les validateurs ignorent sans rien dire.
Les exemples
- Profil utilisateur (2020-12) :
required, longueurs de chaînes,format: email, unenumdansitems,uniqueItemsetadditionalProperties: false. - Liste de produits avec $ref (draft-07) : un tableau dont les éléments renvoient à
#/definitions/product, avec unpatternpour le code article et un prix enexclusiveMinimum. - Configuration avec if/then (2019-09) : un certificat exigé seulement en mode HTTPS, un
oneOfentre courriel et URI, et des bornes numériques.
Chaque exemple est accompagné d’un document qui contient des erreurs volontaires, pour voir à quoi ressemblent les messages.
Questions fréquentes
Mes données sont-elles envoyées sur un serveur ?
Non. Le schéma et le document sont validés dans votre navigateur ; rien n’est transmis.
Pourquoi mon $ref est-il « non résolu » ?
Le validateur ne connaît que le schéma collé. Un $ref vers un autre fichier ou une URL ne peut pas être suivi : copiez les définitions visées dans $defs et pointez vers #/$defs/….
Quelle version choisir ?
Celle que vise votre projet, déclarée avec $schema. Pour un nouveau schéma, 2020-12 est la version actuelle ; c’est aussi celle d’OpenAPI 3.1.
Pourquoi integer refuserait-il 2.0 ?
Il ne le refuse pas : JSON Schema considère 2.0 comme un entier, puisque sa valeur est entière. C’est 2.5 qui échoue avec "type": "integer".
L'outil fonctionne-t-il hors ligne ?
Oui. Une fois la page chargée et une première validation effectuée (qui charge le validateur), aucune connexion n’est nécessaire.
Outils similaires
- Formateur et validateur JSON Formateur et validateur JSON gratuit qui indente, minifie et vérifie votre JSON dans le navigateur, avec erreurs signalées par ligne et colonne.
- Testeur JSONPath Testez vos expressions JSONPath sur votre propre JSON, dans le navigateur. Filtres, tranches, descente récursive, chemins et pointeurs JSON.
- Convertisseur JSON en YAML Convertissez du JSON en YAML et du YAML en JSON dans votre navigateur : ancres, clés de fusion et fichiers multidocuments pris en charge.