TK TaskKit
Outils dev

Validateur JSON Schema

Valide du JSON contre un schema avec chemins d'erreur complets. Draft-07 et 2020-12, vérifications de format, mode toutes-les-erreurs.

Schema
Données
Validation

Impossible de compiler le schema: Code generation from strings disallowed for this context

Les entrées restent sur cet appareil. Chaque outil dev de TaskKit tourne entièrement dans ton navigateur. Tokens, payloads et texte collé ne sont pas transmis aux serveurs de TaskKit ni à des tiers.

Ce que fait cet outil

Valide un document JSON contre un JSON Schema, en renvoyant soit « valide » soit une liste d'erreurs avec le chemin d'instance et le chemin de schema exacts pour chaque échec. Supporte Draft-07 et Draft 2020-12, auto-détecté depuis le champ $schema du schema, avec override manuel. Les vérifications de format (email, uri, date-time, uuid, etc.) sont activées.

Quand l'utiliser

  • Concevoir un nouveau schema et l'essayer contre des payloads représentatifs.
  • Diagnostiquer pourquoi ton API a rejeté une requête — le body matche-t-il vraiment la doc ?
  • Vérifier qu'un fichier de config suit le schema de ton équipe avant de commit.
  • Migrer entre Draft-07 et 2020-12 et vérifier que rien n'a cassé.

Comment ça marche

En dessous, ça utilise Ajv (le validateur JSON Schema derrière la plupart de l'outillage JS), épinglé en mode toutes-les-erreurs pour que tu voies chaque problème d'un coup au lieu de t'arrêter au premier. Les vérifications de format viennent de ajv-formats. Le schema et les données sont parsés en local ; rien n'est envoyé nulle part.

Sélection du draft : si le schema a "$schema": "https://json-schema.org/draft/2020-12/schema" on utilise le dialecte 2020-12 ; "http://json-schema.org/draft-07/schema#" sélectionne Draft-07. Sans $schema, on défaut à Draft-07 parce que c'est encore le plus courant dans la nature.

Notes

additionalProperties est autorisé par défaut — c'est correct ? Oui, par la spec. Si tu veux interdire les champs supplémentaires, mets "additionalProperties": false explicitement. C'est la cause la plus courante des surprises « je pensais que mon schema était strict ».

Quelle est la différence entre Draft-07 et 2020-12 ? 2020-12 retravaille les références ($dynamicRef), sépare items en items et prefixItems, et change comment additionalItems est géré. La plupart des schemas du quotidien marchent dans les deux, mais si tu utilises la validation de tuple, la syntaxe est incompatible.

Pourquoi ma regex pattern matche-t-elle des choses différentes dans des validateurs différents ? JSON Schema spécifie la syntaxe regex ECMA-262 (le flavor JavaScript). Les validateurs dans d'autres langages traduisent, parfois imparfaitement. Teste les motifs dans le Testeur de regex pour être sûr.

Outils liés