Validateur et générateur de JSON Schema
Validez du JSON contre un schéma, ou inférez un schéma depuis des données d’exemple
À propos de cet outil
Deux directions d’une même discipline : collez un exemple JSON et obtenez un schéma draft-07 inféré, ou collez des données plus un schéma et voyez chaque violation listée avec son chemin JSON. La validation s’exécute sur Ajv — le moteur qu’utilisent la plupart des services Node — donc ce qui passe ici passe en CI.
L’inférence pense production : les clés d’objets deviennent des propriétés typées et des entrées required, les tableaux fusionnent les formes de tous leurs membres, les entiers sont distingués des flottants, et les clés présentes dans seulement une partie des membres d’un tableau sont correctement exclues de required. Le résultat est un point de départ que vous resserrez ensuite avec des formats, des bornes et des motifs.
Les réponses d’API et les fichiers de configuration sont précisément les données que vous voulez le moins voir sur un serveur tiers. Inférence et validation s’exécutent toutes deux entièrement dans votre navigateur.
Questions fréquentes
- Quel draft de JSON Schema est pris en charge ?
- L’inférence émet du draft-07, le draft le plus largement pris en charge par les éditeurs et les validateurs. La validation accepte draft-07 et les drafts antérieurs qu’Ajv comprend en mode non strict ; les mots-clés 2019-09/2020-12 fonctionnent en grande partie aussi, car les mots-clés inconnus sont ignorés plutôt que fatals.
- Que signifie le $ dans les chemins de violation ?
- C’est la racine du document, à la manière de JSONPath : $.age désigne la propriété age de premier niveau, $.items.2.name le name du troisième élément du tableau. Un chemin vide ($) signifie que la violation porte sur la racine du document elle-même — mauvais type, ou propriété required manquante.
- Pourquoi le schéma inféré est-il plus strict ou plus lâche que prévu ?
- Il décrit exactement l’exemple fourni : les champs présents partout deviennent required, et seuls les types observés sont autorisés. Donnez-lui un échantillon plus varié (un tableau d’objets représentatifs) pour un schéma plus général, puis ajustez à la main — l’inférence ne peut pas deviner l’intention.
- La validation prend-elle en charge format, pattern et les autres mots-clés de contrainte ?
- Les mots-clés structurels (type, required, properties, items, enum, minimum, pattern…) sont pleinement appliqués. Les chaînes de format comme "email" ou "date-time" ne sont pas imposées — cela reflète la spécification JSON Schema, où format n’est qu’une annotation par défaut, et évite une fausse confiance.