>_toolkitbox

~/tools / JSON Schema Validator

JSON Schema Validator — Vérifiez un JSON par rapport à un JSON Schema

Vérifiez des données JSON par rapport à un JSON Schema et voyez chaque problème avec son chemin et la règle enfreinte. Prend en charge les principaux mots-clés de la Draft 2020-12. Utile pour contrôler la sortie structurée d'un modèle d'IA. Rien ne quitte votre navigateur.

Suit JSON Schema Draft 2020-12 pour les mots-clés pris en charge. Il ne lit $ref qu'à l'intérieur du même schéma.

Tout s'exécute dans votre navigateur. Le schéma et les données ne sont pas envoyés.

Un JSON Schema décrit à quoi ressemble un JSON valide : ses types, ses propriétés obligatoires, ses valeurs et ses plages autorisées. Cet outil vérifie un JSON par rapport à un schéma et liste chaque problème avec son emplacement dans les données et le mot-clé du schéma qui a échoué. Les API d'IA peuvent contraindre la réponse d'un modèle à un schéma, mais cette réponse peut quand même contenir des valeurs fausses, être un refus ou être coupée : mieux vaut la vérifier vous-même. Les mots-clés que l'outil ne vérifie pas, comme format, sont signalés lorsque votre schéma les utilise ; une validation réussie n'est donc jamais plus faible qu'elle n'en a l'air.

Cas d'usage

  • Vérifier que la sortie structurée d'un modèle d'IA correspond au schéma que vous lui avez donné
  • Tester un schéma sur quelques exemples valides et invalides avant de l'utiliser dans une API
  • Trouver quelle propriété d'un gros document JSON enfreint les règles

Utilisation

  1. Collez le schéma à gauche et les données JSON à droite, ou chargez l'exemple.
  2. Lisez le résultat : une validation réussie, ou une liste de problèmes avec le chemin dans les données et la règle enfreinte.
  3. Consultez l'avis sur les mots-clés non vérifiés, s'il apparaît.

Ce qu'un schéma vérifie, et ce qu'il ne vérifie pas

  • properties ne vérifie que les propriétés présentes. Une propriété n'est obligatoire que si son nom figure dans required : une propriété non listée peut donc manquer.
  • additionalProperties s'applique aux noms qui ne correspondent ni à properties ni à patternProperties. S'il est omis, les propriétés supplémentaires sont permises.
  • integer correspond à tout nombre dont la partie fractionnaire est nulle.
  • pattern est une expression régulière ECMA-262 et n'est pas ancrée : le motif b correspond à la chaîne abc. Ajoutez ^ et $ lorsque toute la chaîne doit correspondre.
  • minLength et maxLength comptent les caractères au sens de la RFC 8259 : un émoji compte donc pour un.
  • format est une annotation par défaut, et sa vérification est facultative. Cet outil ne la fait pas et l'indique lorsqu'un schéma l'utilise.
  • Les mots-clés inconnus sont traités comme des annotations : un mot-clé mal orthographié comme requierd est donc ignoré et ne fait pas échouer le schéma.

Tableaux : 2020-12 et drafts antérieures

DraftSchémas des premiers élémentsSchéma du reste
2020-12prefixItemsitems
draft-07 et antérieuresitems sous forme de tableauadditionalItems

Cet outil lit les deux formes. En 2020-12, items: false remplace additionalItems: false.

Ce qu'acceptent les fonctions de sortie structurée des IA

Chaque éditeur n'accepte qu'un sous-ensemble de JSON Schema, et les trois le documentent différemment.

ÉditeurCe que dit la documentation
OpenAILa racine doit être un objet. Chaque propriété doit figurer dans required (une valeur facultative s'écrit comme un type qui autorise aussi null), et chaque objet exige additionalProperties: false. allOf, not, dependentRequired, dependentSchemas et if/then/else ne sont pas pris en charge.
AnthropicadditionalProperties doit être false. Les schémas récursifs, minimum, maximum et multipleOf, minLength et maxLength, et un minItems de tableau autre que 0 ou 1 ne sont pas pris en charge. Une fonction non prise en charge renvoie une erreur 400.
Google GeminiSeul un sous-ensemble de JSON Schema est pris en charge. minLength, maxLength, minProperties, maxProperties, uniqueItems, contains, minContains et maxContains sont retirés et ignorés au lieu de provoquer une erreur.

Un schéma qui passe ce validateur peut quand même être rejeté, ou n'être appliqué qu'en partie, par la fonction d'un éditeur. Consultez la documentation de l'éditeur et validez vous-même la réponse.

Validez vous-même la réponse

  • Google dit que la sortie peut correspondre au schéma tout en étant fausse quant au sens, et vous invite à valider les valeurs dans votre application.
  • Anthropic note qu'une valeur enum ou const peut revenir ne différant que par la casse, sans erreur.
  • OpenAI dit qu'un refus ne suit pas forcément le schéma, et qu'une réponse coupée par la limite maximale de tokens est incomplète.
  • Anthropic dit qu'une réponse coupée par max_tokens peut ne pas correspondre au schéma. Vérifiez pourquoi le modèle s'est arrêté avant d'analyser.

Sources (vérifiées le 2026-10-23): JSON Schema 2020-12: Core / JSON Schema 2020-12: Validation / JSON Schema 2020-12: Release notes / OpenAI: Structured Outputs / Anthropic: Structured outputs / Google AI for Developers: Structured output

FAQ

Quelle version de JSON Schema l'outil suit-il ?

La Draft 2020-12. Il lit aussi les anciennes formes de tableaux de la draft-07, où items peut être un tableau et additionalItems couvre le reste. Il accepte $ref vers des définitions situées dans le même schéma ($defs ou definitions) et ne va pas chercher de schémas externes.

Quels mots-clés vérifie-t-il ?

type, enum, const, les limites des nombres et des chaînes, pattern, les mots-clés de tableau (items, prefixItems, minItems, maxItems, uniqueItems, contains), les mots-clés d'objet (properties, patternProperties, additionalProperties, required, propertyNames, dependentRequired et d'autres), allOf, anyOf, oneOf, not et if/then/else.

Que ne vérifie-t-il pas ?

format, unevaluatedProperties, unevaluatedItems, $dynamicRef et contentMediaType ne sont pas vérifiés. JSON Schema traite format comme une annotation par défaut, et sa vérification est facultative. Lorsque votre schéma utilise l'un de ces mots-clés, l'outil l'indique.

Pourquoi un mot-clé mal orthographié ne provoque-t-il pas d'erreur ?

JSON Schema traite les mots-clés inconnus comme des annotations : une faute de frappe comme requierd est donc ignorée et le schéma passe quand même. L'outil signale une mauvaise valeur pour un mot-clé qu'il connaît, par exemple un type qui n'existe pas, mais il ne peut pas deviner que vous pensiez à un autre mot.

Un schéma qui passe ici fonctionnera-t-il avec les sorties structurées d'un éditeur d'IA ?

Pas forcément. Chaque éditeur ne prend en charge qu'un sous-ensemble de JSON Schema. OpenAI exige que toutes les propriétés soient required et que additionalProperties soit false, Anthropic ne prend pas en charge les limites de longueur des nombres ou des chaînes, et Gemini ignore plusieurs mots-clés. Consultez les notes par éditeur sous l'outil.

Mes données sont-elles envoyées à un serveur ?

Non. Le schéma comme les données sont vérifiés dans votre navigateur.

Voir aussi