Validateur de schéma JSON
Validate any JSON document against a JSON Schema (Draft 7) and see exactly which paths fail and why. — outil en ligne gratuit.
Réponse rapide: JSON Schema Validator: Fonctionne dans le navigateur, gratuitement, sans inscription.
Dernière mise à jour
Questions fréquentes
- Quelle version de JSON Schema est prise en charge ?
- Draft 7, avec une large compatibilité concernant les fonctionnalités de Draft 2020-12 dont la sémantique n’a pas changé. La plupart des schémas courants fonctionnent sans conversion.
- Quels mots-clés sont pris en charge ?
- <code>type</code>, <code>enum</code>, <code>const</code>, <code>required</code>, <code>properties</code>, <code>additionalProperties</code>, <code>patternProperties</code>, <code>items</code> (unique + tuple), <code>min/maxItems</code>, <code>uniqueItems</code>, <code>min/maxLength</code>, <code>pattern</code>, les valeurs courantes de <code>format</code>, <code>minimum/maximum</code> + leurs variantes exclusives, <code>multipleOf</code>, ainsi que les combinateurs <code>allOf</code>/<code>anyOf</code>/<code>oneOf</code>/<code>not</code>.
- Les références <code>$ref</code> sont-elles prises en charge ?
- Non, pas dans cet outil : les redirections <code>$ref</code> ne sont pas suivies. Intégrez le sous-schéma référencé directement, ou prétraitez-le à l’aide d’un outil tel que <code>json-schema-ref-parser</code> avant de le coller.
- Quels formats sont reconnus ?
- <code>email</code>, <code>uri</code>, <code>uuid</code>, <code>date-time</code>, <code>date</code>, <code>time</code>, <code>ipv4</code> et <code>hostname</code>. Les autres formats sont acceptés silencieusement, conformément à la règle des formats facultatifs de Draft 7.
- Pourquoi l’erreur « valeur absente de enum » apparaît-elle alors que la valeur semble correcte ?
- La comparaison avec enum est exacte : une chaîne et un nombre ne correspondent pas, même si leurs chiffres paraissent identiques. Vérifiez les types JSON des deux côtés ; <code>1</code> et <code>"1"</code> sont des valeurs distinctes.
- Comment les erreurs situées profondément dans des objets imbriqués sont-elles gérées ?
- Chaque erreur contient le chemin pointé depuis la racine ; <code>$.users[3].profile.email</code> indique donc précisément la valeur à corriger. Les erreurs sont répertoriées dans l’ordre du document.
- Toutes les erreurs sont-elles détectées, ou l’analyse s’arrête-t-elle à la première ?
- Toutes les erreurs : l’analyse ne s’interrompt pas prématurément, afin de fournir la liste complète des corrections à effectuer en une seule passe.
- Mon JSON est-il envoyé sur un serveur ?
- Non : le schéma comme le document restent dans votre navigateur. La validation consiste en un parcours JavaScript des deux arbres.
- Quelle taille de document puis-je valider ?
- Les documents de plusieurs mégaoctets sont validés en bien moins d’une seconde. Le principal ralentissement provient de l’affichage de milliers d’erreurs, non de la validation elle-même.
- Pourquoi mon schéma fonctionne-t-il dans Ajv, mais pas ici ?
- La cause la plus probable est <code>$ref</code>, <code>$dynamicRef</code> ou un mot-clé propre à Draft 2020-12, tel que <code>prefixItems</code>. Intégrez les références directement et convertissez-les vers leurs équivalents Draft 7 avant de les coller.