JSON Schema Validator

One input per line. Output is numbered to match the input order.
Pinned tools are listed in your favourites on the home page.Copies a link to this tool that carries your current input, so it opens ready to run.Gives you an iframe snippet for putting this tool on your own site.
JSON Schema
JSON Data
Ctrl+Enter Run  · Ctrl+Shift+C Copy  · Esc Clear

Understand JSON Schema Validator

Ce validateur confronte un document JSON à un JSON Schema et énumère chaque endroit où les données ne correspondent pas, avec le chemin de la valeur fautive.

How it works

Il parcourt ensemble les données et le schéma, en appliquant à chaque niveau les contraintes des mots-clés : type (y compris integer), enum, required, properties, additionalProperties, pattern, minLength et maxLength, minimum et maximum, items, minItems et maxItems. Les erreurs portent un chemin tel que $.user.email, ce qui permet de retrouver la valeur dans un grand document. Quand une valeur est du mauvais type, le parcours s'arrête là, parce que tout contrôle supplémentaire sur elle ne serait que du bruit.

When to use it

  • Vérifier qu'une réponse d'API correspond toujours à la forme attendue par votre client.
  • Éprouver un schéma en cours d'écriture avec un exemple qui doit passer et un exemple qui doit échouer.
  • Trouver quel champ d'une grande charge utile un service refuse.
  • Confirmer qu'un fichier de configuration correspond au schéma que publie son propre outil.

Watch out for

  • JSON Schema est permissif par défaut. Une propriété absente de properties est autorisée sauf si additionalProperties vaut false, et une propriété listée est facultative sauf si elle est nommée dans required — un schéma qui paraît strict ne l'est généralement pas.
  • Ceci implémente un sous-ensemble du draft-07. $ref, allOf, anyOf, oneOf, not, const et format ne sont pas évalués, si bien qu'un schéma qui les utilise obtient un rapport sur ce qui peut être vérifié et un silence sur le reste.
  • type: number accepte les entiers, et type: integer accepte aussi bien 1.0 que 1, parce que JSON n'a qu'un seul type numérique et que 1.0 est ce nombre.
  • Une incompatibilité de type supprime les erreurs restantes sur cette valeur, si bien que corriger une erreur peut en révéler d'autres en dessous.

Not the right tool for: Les schémas qui s'appuient sur $ref, sur les combinateurs ou sur les assertions de format. Ajv est l'implémentation de référence et vérifie ce que celui-ci ne peut pas.

Frequently Asked Questions

Quels mots-clés de JSON Schema sont pris en charge ?

Un sous-ensemble du cœur de draft-07 : type (y compris integer et les tableaux de types), required, properties, additionalProperties, enum, pattern, minLength/maxLength, minimum/maximum, items, minItems/maxItems et les schémas imbriqués. Non implémentés : format, const, $ref et les combinateurs allOf/anyOf/oneOf/not. Pour une couverture complète de draft-07, utilisez Ajv dans votre propre chaîne de compilation.

Quelle est la différence entre JSON Schema draft-07 et 2020-12 ?

Le draft-07 est la version la plus largement déployée (utilisée par défaut dans de nombreux outils). Le draft 2020-12 ajoute $dynamicRef, unevaluatedProperties et un comportement de $ref amélioré. Utilisez le draft-07, sauf si votre chaîne d'outils exige expressément un draft plus récent.

Comment valider une réponse d'API contre un schéma ?

Collez votre réponse d'API dans le champ « Données » et le composant de schéma OpenAPI/Swagger dans le champ « Schéma ». C'est utile pour s'assurer que les réponses d'une API correspondent à la forme documentée avant d'écrire le code client.

How to Use JSON Schema Validator

  1. Paste or type your input in the input area above.
  2. The tool processes your input automatically or click Run.
  3. Copy or download the result using the action buttons.
  4. Use Ctrl+Enter to run quickly from the keyboard.