Validez du JSON avec un JSON Schema (2020-12, 2019-09, draft 7), chaque erreur localisée
Fonctionne dans votre navigateur. Rien de ce que vous saisissez n'est envoyé nulle part. Vérifié le 16 octobre 2026.Un validateur JSON Schema vérifie qu'un document JSON a la forme décrite par un schéma : les bons types, les propriétés obligatoires, des valeurs dans les limites et aucune clé inattendue. Celui-ci prend en charge les drafts 2020-12, 2019-09, 7, 6 et 4, réussit 1 652 cas de la suite de tests officielle et désigne chaque valeur fautive par son chemin et sa ligne.
Cette page a été traduite automatiquement à partir de l'original anglais. Aucune personne n’a encore relu la traduction : c’est la version anglaise qui fait foi. Lire l'original en anglais
Collez le schéma dans le panneau Schéma et le JSON dans le panneau Données, ou cliquez sur Essayer un exemple.
Lisez le résultat : Valide, ou une liste d'erreurs, chacune avec le chemin de la valeur et ce qui ne va pas.
Cliquez sur une erreur pour placer le curseur sur cette valeur dans le panneau Données, corrigez-la, et la liste se met à jour pendant la saisie.
Activez Vérifier les formats pour tester aussi l'e-mail, la date-heure, l'URI et les autres formats courants.
JSON Schema est la manière standard de décrire à quoi ressemble un JSON valide ; il est utilisé par OpenAPI, les générateurs de formulaires, les fichiers de configuration et les pipelines de données. Collez un schéma et un document, et le résultat se met à jour pendant la saisie.
Ce qui est vérifié. Chaque assertion du vocabulaire de validation : type, enum, const, les limites numériques et multipleOf, la longueur de chaîne et pattern, la longueur de tableau, uniqueItems, contains, la taille d'objet, required, dependentRequired, ainsi que les applicateurs properties, patternProperties, additionalProperties, items, prefixItems, allOf, anyOf, oneOf, not et if/then/else. Les références $ref suivent les pointeurs JSON, $defs, definitions, $id et $anchor à l'intérieur du schéma.
Quel draft. Le draft est lu dans $schema, ou vaut 2020-12 si le schéma n'en indique aucun, et vous pouvez le forcer. Les différences comptent : en draft 7, items avec un tableau vérifie chaque position et les mots-clés placés à côté de $ref sont ignorés ; en 2020-12, les positions passent dans prefixItems et $ref se combine avec ses voisins.
Formats. Depuis 2019-09, format est une annotation, pas une vérification. Activez Vérifier les formats pour tester malgré tout email, date-time, date, time, uri, uuid, ipv4, ipv6 et hostname, comme la plupart des gens s'y attendent.
Des erreurs exploitables. Chaque erreur donne le chemin de la valeur fautive, par exemple /tags/1, sa ligne dans le panneau Données et la règle enfreinte. Cliquez dessus et le curseur se place sur cette valeur.
Ce qu'il ne fait pas. unevaluatedProperties, unevaluatedItems et $dynamicRef ne sont pas évalués, et un $ref vers un schéma hébergé sur un autre serveur n'est pas récupéré. La page le signale dès qu'un schéma en utilise un, au lieu de laisser passer les données sans rien dire.
Générer un schéma. Collez plutôt un échantillon, et un schéma de départ est rédigé à partir de celui-ci, prêt à être affiné.
Le validateur est testé avec la JSON-Schema-Test-Suite officielle. Tout s'exécute dans votre navigateur ; rien de ce que vous collez n'est envoyé nulle part.
Collez le schéma dans le panneau Schéma et le document JSON dans le panneau Données. Le résultat apparaît aussitôt : Valide, ou une liste d'erreurs, chacune indiquant le chemin de la valeur fautive, par exemple /items/2/price, et la règle enfreinte, par exemple minimum 0. Corrigez les données ou le schéma et la liste se met à jour pendant la saisie.
Utilisez 2020-12 pour les nouveaux schémas : c'est la spécification actuelle et celle qu'utilise OpenAPI 3.1. Le draft 7 reste courant dans les outils et bibliothèques plus anciens. Déclarez la version dans $schema, par exemple https://json-schema.org/draft/2020-12/schema, car les tuples de tableaux, $ref et dependencies se comportent différemment selon les versions.
Avec additionalProperties à false, toute propriété qui ne figure pas dans properties et ne correspond pas à patternProperties devient une erreur. Une faute de frappe comme emial au lieu de email est alors détectée au lieu d'être ignorée. Les propriétés ajoutées par allOf dans un autre sous-schéma ne sont pas vues, ce qui surprend souvent ; listez-les dans le même schéma.
Depuis 2019-09, le mot-clé format n'est par défaut qu'une annotation : les validateurs ne sont donc pas tenus de le vérifier. Activez ici Vérifier les formats pour tester email, date-time, date, time, uri, uuid, ipv4, ipv6 et hostname. Dans le code, des bibliothèques comme Ajv exigent aussi d'activer séparément la vérification des formats.
required nomme les propriétés précises qui doivent être présentes, comme id et email, tandis que minProperties se contente de les compter : minProperties 2 accepte deux clés quelconques. Une propriété listée dans properties mais pas dans required est facultative et, si elle est présente, doit tout de même respecter son propre schéma.
Oui. Passez à Générer un schéma et collez un échantillon dans le panneau Données : un schéma 2020-12 est rédigé avec chaque propriété typée et les clés présentes dans tous les enregistrements marquées required. Un échantillon ne peut pas montrer les limites, les formats ni les valeurs autorisées : ajoutez minimum, format et enum à la main avant de vous y fier.
Les taux et les règles changent ; vérifiez la source avant de vous fier à un chiffre.
Toujours bloqué ? Poser une question sur Validateur JSON Schema et toute personne qui connaît la réponse peut répondre. Aucun compte nécessaire.