Contrôler des champs obligatoires
Décrivez un petit contrat avec required et properties, puis comparez plusieurs réponses API. Un champ présent avec null peut nécessiter un type nullable ; il n’est pas simplement manquant.
Comparez un document JSON à un schéma directement dans votre navigateur. Les erreurs indiquent le chemin, la règle concernée et la cause du problème.
Vérifiez un document JSON contre les contraintes prises en charge d’un schéma JSON, puis retrouvez les erreurs à l’aide du chemin et du mot-clé concernés. La première zone contient les données et la seconde le schéma ; un JSON valide dans les deux zones ne garantit pas que les données respectent le contrat. Le contrôle reste local et ne récupère pas de schéma distant. Cette implémentation couvre un sous-ensemble explicite de JSON Schema 2020-12 ; elle ne doit pas être présentée comme un validateur complet de toutes les extensions.
Les contrôles disponibles comprennent type, const, enum, les bornes numériques et multipleOf. Les chaînes sont vérifiées avec minLength, maxLength et pattern. Les tableaux peuvent imposer minItems, maxItems, uniqueItems et un schéma items. Les objets utilisent properties, required, additionalProperties, minProperties et maxProperties. Les combinaisons allOf, anyOf, oneOf et not sont également évaluées.
Le schéma est inspecté avant les données, y compris ses branches actuellement inutilisées. Une contrainte prise en charge mais mal définie produit une erreur de schéma. Les références $ref et $dynamicRef, prefixItems, contains, patternProperties, les dépendances conditionnelles, les contraintes unevaluated et if/then/else ne sont pas implémentées : leur présence déclenche un diagnostic de fonctionnalité non prise en charge au lieu d’une réussite trompeuse.
format n’effectue pas de validation d’adresse e-mail, d’URL ou de date dans ce moteur. Les annotations comme title et description ne sont pas des assertions sur la valeur. Pour un schéma utilisant des vocabulaires ou fonctions supplémentaires, choisissez un validateur adapté plutôt que de supprimer des contraintes simplement pour obtenir un résultat positif.
Les longueurs de chaînes sont comptées en points de code Unicode, pas en unités UTF-16 ni en caractères visuels combinés. L’égalité de const, enum et uniqueItems ignore l’ordre des propriétés d’un objet mais conserve l’ordre des tableaux et le type des scalaires. Les nombres restent soumis à la précision de JavaScript : des valeurs très grandes ou des calculs décimaux exigent une stratégie adaptée dans votre application.
Collez les valeurs dans Document JSON et les règles dans Schéma JSON. Le bouton d’exemple montre cette séparation sans contacter de service externe.
Vérifiez le résumé, puis le chemin et la règle de chaque ligne. Un chemin commençant par $schema désigne un problème dans la définition du contrat.
Modifiez les données si elles sont erronées, ou le schéma si sa règle était mal définie. Changer une zone masque les résultats antérieurs ; relancez avant de conclure.
Décrivez un petit contrat avec required et properties, puis comparez plusieurs réponses API. Un champ présent avec null peut nécessiter un type nullable ; il n’est pas simplement manquant.
Utilisez uniqueItems pour repérer deux objets équivalents même si leurs propriétés sont écrites dans un ordre différent.
Distinguez une erreur de données d’un schéma invalide ou d’un mot-clé non pris en charge. Dans ces derniers cas, le contrat complet n’a pas été vérifié.
Le bloc regroupe les deux entrées pour les présenter ensemble : placez document dans la première zone et schema dans la seconde. Le résumé du moteur confirme que 😀 respecte une longueur comprise entre 1 et 1.
Entrée
{
"document": "😀",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 1
}
}Résultat
{
"valid": true,
"issues": []
}Le champ id contient la chaîne "1" alors que le schéma demande integer. Le résumé indique une erreur type au chemin $.id ; le validateur ne convertit pas automatiquement la valeur en nombre.
Entrée
{
"document": {
"id": "1"
},
"schema": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer"
}
},
"additionalProperties": false
}
}Résultat
{
"valid": false,
"issues": [
{
"path": "$.id",
"keyword": "type"
}
]
}Non. Ni les références locales ni les références distantes ne sont évaluées. Leur présence produit un diagnostic explicite ; aucun fichier ou URL de schéma n’est chargé.
Ce moteur ne transforme pas format en assertion de validation. Utilisez les contraintes prises en charge ou un validateur disposant du vocabulaire de formats dont votre contrat a besoin.
Un emoji composé d’un seul point de code, comme 😀, compte pour un. Une séquence avec modificateurs, marques combinées ou caractères de liaison peut compter plusieurs points de code malgré un affichage visuel unique.
L’ordre des propriétés ne change pas la valeur d’un objet JSON. const, enum et uniqueItems appliquent cette égalité structurelle. À l’inverse, l’ordre des éléments d’un tableau reste significatif.
Outils associés
Des outils similaires ou complémentaires à celui-ci.
Vérifiez une description d’API en JSON ou YAML sans l’envoyer à un serveur.
Générez un JSON Schema à partir d’un exemple JSON, localement dans votre navigateur.
Formatez, minifiez et validez un document JSON pour le rendre plus lisible ou plus compact.