logo
GeekFormat

Validateur JSON Schema

Recommandations connexes

Fonctionnalités

  • Validation Draft-07 : support complet de JSON Schema Draft-07 (types, required, properties, regex, formats, enums)
  • Logique de combinaison : allOf, anyOf, oneOf, not pour gérer des structures complexes et des contraintes multiples
  • Localisation précise des erreurs : chemins d'erreur détaillés et messages sémantiques pour un débogage rapide
  • Tests de contrat d'API : vérifiez que les réponses d'API correspondent strictement au schéma défini
  • Traitement 100 % local : calcul dans le navigateur, aucune donnée envoyée sur un serveur

FAQ

Comment valider des données d'API avec JSON Schema ?

Collez votre schéma JSON à gauche et le JSON de la réponse d'API à droite. L'outil compare automatiquement les deux structures et valide les types, champs obligatoires, motifs regex et plus.

Quelles règles de validation sont supportées ?

JSON Schema Draft-07 complet : types (type), champs obligatoires (required), propriétés (properties), regex (pattern), format, enums et logique de combinaison (allOf, anyOf, oneOf, not).

Comment localiser les erreurs quand la validation échoue ?

L'outil génère un rapport détaillé avec le chemin JSON en erreur, le type d'erreur spécifique et la règle de schéma correspondante. Localisez rapidement les problèmes.

Comment utiliser JSON Schema pour la gouvernance des données ?

Vérifiez que vos données sont conformes au schéma avant l'import ETL ou l'ingestion. Interceptez les données sales et anomalies pour garantir la qualité de vos pipelines.

Mes données sont-elles sécurisées ?

Oui. Tout le traitement s'exécute localement dans votre navigateur. Vos données ne sont jamais envoyées sur un serveur.

Aide-mémoire des mots-clés JSON Schema

Le tableau ci-dessous répertorie les mots-clés de validation les plus couramment utilisés dans la spécification JSON Schema, organisés par catégorie pour une référence rapide.

Mot-cléDescription
Types de base
typeSpécifie le type de données : string, number, integer, boolean, array, object, null. Prend en charge un type unique ou un tableau de types.
Validation d'objet
propertiesDéfinit des sous-schémas pour les propriétés de l'objet.
requiredTableau de chaînes spécifiant quelles propriétés sont obligatoires.
additionalPropertiesContrôle si les propriétés supplémentaires non définies dans properties sont autorisées ; peut être false ou un schéma.
propertyNamesSchéma auquel les noms de propriétés doivent correspondre (utilise généralement une regex pattern).
minPropertiesNombre minimum de propriétés qu'un objet doit contenir.
maxPropertiesNombre maximum de propriétés qu'un objet peut contenir.
Enums & Constantes
enumTableau de valeurs autorisées ; les données doivent correspondre exactement à une valeur du tableau.
constValeur constante ; les données doivent être strictement égales à cette valeur.
Contraintes numériques
minimumValeur numérique minimum (inclusive).
maximumValeur numérique maximum (inclusive).
exclusiveMinimumLa valeur doit être strictement supérieure à (exclusive).
exclusiveMaximumLa valeur doit être strictement inférieure à (exclusive).
multipleOfLa valeur doit être un multiple du nombre spécifié.
Contraintes de chaîne
minLengthLongueur minimum de la chaîne.
maxLengthLongueur maximum de la chaîne.
patternExpression régulière ; la chaîne doit correspondre à ce motif.
formatValidation de format sémantique : email, uri, date-time, uuid, ipv4, ipv6, hostname, etc.
Contraintes de tableau
itemsSchéma pour les éléments du tableau (un schéma unique s'applique à tous les éléments).
minItemsNombre minimum d'éléments du tableau.
maxItemsNombre maximum d'éléments du tableau.
uniqueItemsIndique si les éléments du tableau doivent être uniques.
containsAu moins un élément du tableau doit correspondre à ce schéma.
Logique combinatoire
allOfLes données doivent correspondre à tous les sous-schémas (ET logique).
anyOfLes données doivent correspondre à au moins un sous-schéma (OU logique).
oneOfLes données doivent correspondre à exactement un sous-schéma (OU exclusif).
notLes données ne doivent PAS correspondre à ce schéma (NON logique).
Validation conditionnelle
ifSchéma conditionnel ; si les données correspondent à if, elles doivent satisfaire then ; sinon elles doivent satisfaire else.
thenSchéma à satisfaire lorsque la condition if est vraie.
elseSchéma à satisfaire lorsque la condition if est fausse.
Références & Réutilisation
$refRéférence d'autres définitions de schéma ; prend en charge les références locales (#/$defs/xxx) et les références distantes.
$defsDéfinit des sous-schémas réutilisables (Draft 2019-09+ ; les versions plus anciennes utilisent definitions).
definitionsMot-clé pour les sous-schémas réutilisables dans Draft 4-7.
Métadonnées
titleTitre du schéma (annotation, non validée).
descriptionDescription du schéma (annotation, non validée).
defaultValeur par défaut (annotation, non validée).
examplesTableau de valeurs d'exemple (annotation, non validée).
$schemaSpécifie la version de la spécification JSON Schema utilisée.
Dépendances
dependentRequiredDépendance de propriété : lorsqu'une propriété existe, d'autres propriétés doivent également exister (Draft 2019-09+).
dependenciesMot-clé de dépendance dans Draft 4-7 couvrant à la fois les dépendances de propriété et de schéma.

Comparaison des versions JSON Schema

JSON Schema a évolué à travers plusieurs versions Draft. Draft 7 est actuellement la version la plus largement utilisée ; Draft 2020-12 est la dernière version stable.

FonctionnalitéDraft 4Draft 6Draft 72019-092020-12
validation type
champs obligatoires
enum/const✓ enum
minimum/maximum
exclusiveMinimum/Maximumbooleannumbernumbernumbernumber
multipleOf
minLength/maxLength
regex pattern
validation formatannotation par défautannotation par défaut
tableau items
contains
minItems/maxItems
uniqueItems
additionalProperties
propertyNames
allOf/anyOf/oneOf/not
if/then/else
références $ref
réutilisation $defsdefinitionsdefinitionsdefinitions$defs$defs
dependentRequired
tuples prefixItemsforme tableauforme tableauforme tableauforme tableauprefixItems
unevaluatedProperties
$dynamicRef/$anchor✓ $recursiveRef✓ dynamicRef