Aller au contenu

Validateur JSON Schema

JSON Schema Validator

Valide un document contre un JSON Schema et rapporte chaque échec avec le chemin exact dans l’instance.

Valide un document JSON contre un JSON Schema, draft 2020-12, entièrement dans le navigateur. Il passe les 1 299 tests obligatoires de la JSON-Schema-Test-Suite officielle, et chaque échec est signalé avec l'emplacement dans l'instance et le mot-clé qui l'a produit.

🔒 Fonctionne entièrement dans votre navigateurjson-schemavalidatejson

Schéma (draft 2020-12)

Données à valider

Résultat

Verdict

Non valide

Échecs

3

Emplacement dans l’instanceMot-cléProblème
/portmaximumdoit être inférieur ou égal à 65535
/tagsuniqueItemsles éléments 0 et 1 sont égaux
/debugfalsen’est jamais valide ici (le schéma vaut false)
La validation tourne entièrement dans cet onglet contre JSON Schema draft 2020-12, et passe les 1 299 tests obligatoires de la JSON-Schema-Test-Suite officielle. $ref se résout dans le schéma, dans les documents supplémentaires collés et dans les méta-schémas 2020-12 fournis : les références distantes sont refusées plutôt que téléchargées, donc un verdict ne dépend jamais du réseau. format est signalé comme une annotation et non imposé, ce qui est le comportement de 2020-12 par défaut.

Comment s’en servir

  1. Collez le schéma et les données

    Les deux zones revalident au fil de la frappe. Une erreur de syntaxe dans l'une ou dans l'autre est signalée séparément, pour que vous sachiez quel côté est cassé.

  2. Ajoutez les documents référencés si vous avez des `$ref`

    Activez Schémas supplémentaires et collez-les — un document ou un tableau de documents, chacun avec son `$id`. Rien n'est récupéré sur le réseau : un schéma réparti sur plusieurs fichiers se valide donc quand même ici.

  3. Lisez la table des échecs

    Chaque ligne donne le chemin dans l'instance, le mot-clé qui a échoué et ce qu'il attendait. Copiez l'ensemble en JSON si vous le collez dans un ticket.

Questions fréquentes

Pourquoi mon `"format": "email"` n'est-il pas appliqué ?

Parce que la 2020-12 fait de `format` une annotation par défaut — un validateur a le droit de le rapporter sans le vérifier, et la plupart font exactement cela. S'il vous le faut appliqué, utilisez `pattern`, ou un validateur configuré avec le vocabulaire d'assertion de format.

Une `$ref` distante n'a pas pu être résolue.

Les références distantes sont refusées, pas récupérées. Un validateur qui va sur le réseau donne des résultats qui dépendent du DNS et de la disponibilité de quelqu'un d'autre, et il dit à ce quelqu'un quels schémas vous validez. Collez plutôt le document référencé dans la zone des schémas supplémentaires.

Quels drafts sont pris en charge ?

La 2020-12. Un schéma Draft-07 se valide souvent quand même — la plupart des mots-clés n'ont pas changé —, mais `definitions` n'est pas `$defs`, `items` veut dire autre chose pour les tuples, et `$recursiveRef` a disparu. Vérifiez la ligne `$schema` avant de supposer.

Pourquoi autant d'erreurs pour un seul champ erroné ?

Parce qu'un échec à l'intérieur d'`anyOf`, de `oneOf` ou d'`allOf` rapporte chaque branche qui a échoué — c'est ce que la spécification dit qu'une unité de sortie contient. La première ligne est en général celle que vous voulez ; les autres expliquent pourquoi aucune des solutions de rechange ne correspondait non plus.

À alimenter depuis

Ensuite

Ces outils acceptent ce que celui-ci produit : le résultat peut y aller directement.