JSON Schema Validator
NouveauValidate JSON against a JSON Schema (draft-07 / draft-2020-12) with clear error messages.
Runs entirely in your browser. Nothing is uploaded.
Qu'est-ce que JSON Schema et pourquoi est-ce important ?
JSON (JavaScript Object Notation) est la langue commune des API web, des fichiers de configuration et des échanges de données. Mais le JSON brut n'a pas de système de types intégré — un champ peut être une chaîne un jour et un nombre le lendemain, et la seule façon de découvrir l'incompatibilité est une erreur d'exécution ou un bug de données subtil. JSON Schema comble cette lacune : c'est un vocabulaire déclaratif pour décrire la structure attendue et les contraintes d'un document JSON, validé contre des données réelles au moment de l'exécution.
Les équipes utilisent JSON Schema pour valider les charges utiles des requêtes API avant de les traiter, pour imposer la forme des fichiers de configuration chargés au démarrage, pour générer automatiquement documentation et formulaires d'interface utilisateur à partir d'une seule source de vérité, et pour maintenir la cohérence des contrats entre les microservices. OpenAPI — le standard pour la documentation des API REST — est construit directement sur JSON Schema, en faisant le standard de validation de données le plus largement déployé sur le web.
Versions de JSON Schema : Draft-07, Draft 2019-09 et Draft 2020-12
JSON Schema a traversé plusieurs versions de spécification. Le Draft-07, publié en 2018, reste le plus largement pris en charge par toutes les principales bibliothèques de validateurs et est le dialecte utilisé par OpenAPI 3.0. Il a introduit les puissants mots-clés de validation conditionnelle if/then/else, les annotations de propriété readOnly/writeOnly et les mots-clés d'encodage de contenu. Si vous écrivez des schémas aujourd'hui et n'avez pas besoin des dernières fonctionnalités, le Draft-07 est le choix le plus sûr pour une compatibilité maximale avec l'écosystème.
Le Draft 2020-12 est la spécification stable actuelle et introduit plusieurs changements significatifs : le mot-clé items est remplacé par prefixItems pour la validation de tuples, les références dynamiques utilisent $dynamicRef au lieu de $recursiveRef, et les nouveaux mots-clés unevaluatedProperties et unevaluatedItems offrent un contrôle plus précis sur le contenu supplémentaire.
Les mots-clés clés de JSON Schema expliqués
Le mot-clé type impose un type de données : string, number, integer, boolean, array, object ou null. required liste les propriétés qui doivent être présentes dans un objet. properties associe chaque nom de propriété à son propre sous-schéma. pattern applique une expression régulière à une valeur de chaîne. minimum, maximum, minLength et maxLength contraignent les plages numériques et de chaînes. enum restreint une valeur à un ensemble fixe de valeurs autorisées ; const la restreint à une seule valeur.
Les mots-clés de composition vous permettent de construire des règles complexes à partir de blocs de construction simples : allOf agit comme un ET logique, anyOf comme OU et oneOf comme XOR. Le mot-clé not inverse un schéma. Les mots-clés if/then/else permettent la validation conditionnelle. Ensemble, ils vous permettent d'exprimer presque n'importe quelle règle de validation sans écrire de code impératif personnalisé.
JSON Schema en production : contrats API et pipelines CI
Dans les systèmes de production, la validation JSON Schema s'exécute côté serveur ou dans des pipelines CI en utilisant des bibliothèques comme Ajv (JavaScript/Node.js), jsonschema (Python) ou Newtonsoft.Json (C#). Les schémas sont versionnés avec le code de l'application afin que les modifications de contrat soient examinées et suivies comme tout autre changement. Les changements cassants — supprimer un champ requis, restreindre un type — sont détectés lors de la révision de code avant d'atteindre la production.
Cet outil basé sur le navigateur est idéal pour concevoir et déboguer des schémas de manière itérative avant de les valider. Collez vos données, écrivez votre schéma, cliquez sur Valider, lisez les messages d'erreur détaillés et affinez — sans serveur, sans npm install, sans allers-retours. Le validateur formate également votre JSON à chaque exécution de validation, en faisant un pratique combiné de formateur JSON et de testeur de schéma.
Exemple pratique : Validation d'une réponse d'API
Supposons que votre API renvoie un objet utilisateur. Un JSON Schema qui le valide pourrait nécessiter un id entier, un nom de chaîne non vide, un email de chaîne correspondant à un modèle d'email et un rôle de chaîne optionnel parmi un enum de 'admin', 'editor' et 'viewer'. Définir additionalProperties à false garantit que votre API ne renvoie jamais silencieusement des champs non documentés dont les consommateurs en aval pourraient inadvertamment dépendre.
La fonctionnalité if/then/else permet des règles conditionnelles — par exemple, si le rôle est 'admin' alors un tableau de permissions est requis, sinon il est interdit. Ces règles compositionnelles permettent à un seul schéma de couvrir plusieurs formes valides d'un objet sans dupliquer les définitions de propriétés.
Comment UtiloKit se compare aux autres validateurs JSON Schema
La plupart des outils de validation JSON Schema en ligne appartiennent à deux catégories : les constructeurs visuels de schémas et les validateurs d'API côté serveur. jsonschema.net vous oblige à passer par une interface pointer-cliquer pour construire des schémas — utile pour les débutants apprenant la structure des schémas, mais lent pour les développeurs qui savent déjà quels mots-clés ils ont besoin.
jsonschemavalidator.net, construit sur la bibliothèque Newtonsoft.Json de Microsoft, signale les erreurs en utilisant des chemins de propriété .NET et des codes d'erreur qui semblent peu familiers aux développeurs JavaScript. Des outils comme Stoplight et SwaggerHub valident les schémas dans le cadre d'un document OpenAPI complet et nécessitent une configuration de projet et un compte.
Le validateur d'UtiloKit fonctionne sur le même moteur Ajv qui alimente la plupart des applications Node.js, Express et Fastify. Les messages d'erreur, les chemins de pointeur JSON et le comportement des mots-clés correspondent exactement à votre environnement de production — et il fonctionne gratuitement dans votre navigateur sans compte, sans upload, sans limite de taille de fichier et sans limite d'utilisation quotidienne.
Frequently asked questions
Qu'est-ce que JSON Schema ?
JSON Schema est un vocabulaire déclaratif pour annoter et valider des documents JSON. Il définit la structure attendue, les types de données et les contraintes qu'un document JSON doit satisfaire. Les équipes l'utilisent pour valider les charges utiles d'API, imposer la structure des fichiers de configuration, générer automatiquement documentation et formulaires d'interface utilisateur, et garantir la cohérence des données entre les microservices. OpenAPI 3.0 et 3.1 sont tous deux construits sur JSON Schema.
Quelle version de JSON Schema ce validateur prend-il en charge ?
Ce validateur implémente les mots-clés principaux de JSON Schema Draft-07, la version la plus largement prise en charge dans toutes les principales bibliothèques de validateurs, dont Ajv (JavaScript), jsonschema (Python) et Newtonsoft.Json (C#). Le Draft-07 a introduit la validation conditionnelle if/then/else, les annotations readOnly/writeOnly et les mots-clés d'encodage de contenu.
Quelle est la différence entre allOf, anyOf et oneOf ?
allOf exige que les données soient valides par rapport à tous les sous-schémas listés — il agit comme un ET logique. anyOf exige la validité par rapport à au moins un sous-schéma — OU logique. oneOf exige la validité par rapport à exactement un sous-schéma — XOR logique. Ces mots-clés de composition vous permettent de construire des règles de validation complexes à partir de pièces simples et réutilisables.
Que fait additionalProperties: false ?
Cela interdit toute propriété dans l'objet qui n'est pas explicitement listée sous le mot-clé properties. Cela crée un schéma fermé — très utile pour les contrats API stricts où les champs inattendus doivent provoquer un échec de validation. C'est l'un des pièges les plus courants : si vous ajoutez une nouvelle propriété à vos données sans mettre à jour le schéma, la validation échouera.
Puis-je valider des tableaux d'objets ?
Oui. Définissez type sur 'array' et fournissez un sous-schéma items. Chaque élément du tableau sera validé par rapport à ce sous-schéma. Pour la validation de tuples, définissez items sur un tableau de schémas dans Draft-07. Vous pouvez également contraindre la longueur du tableau avec minItems, maxItems et imposer l'unicité avec uniqueItems: true.
Comment utiliser $ref pour référencer des sous-schémas ?
Définissez des schémas réutilisables dans un objet $defs de niveau supérieur, puis référencez-les avec '$ref': '#/$defs/NomSchema'. Cela garde votre schéma DRY et lisible. Ce validateur prend en charge uniquement $ref local (même document) — les URL $ref distantes pointant vers des fichiers externes ne sont pas récupérées.
Quelles sont les erreurs de validation JSON Schema les plus courantes ?
Les erreurs les plus courantes sont : les propriétés requises manquantes, les incompatibilités de type, les violations de pattern, les violations de plage et les erreurs de propriété supplémentaire lorsque additionalProperties est false. Ce validateur signale chaque erreur avec le chemin exact du pointeur JSON vers la donnée qui échoue.
Related tools
Voir tous les outilsMinifieur CSS
Réduisez le CSS en supprimant les commentaires et les espaces inutiles.
Échapper / Déséchapper du JSON
Échappez du texte brut en une chaîne compatible JSON et déséchappez-la.
Codes de statut HTTP
Référence consultable des codes de statut HTTP avec des explications en langage clair.
Aide-mémoire Regex
Référence consultable des éléments et drapeaux des expressions régulières.
Table ASCII
Codes de caractères consultables en décimal, hexadécimal, octal et binaire.
Convertisseur PX vers REM
Convertissez entre px, rem, em et pt par rapport à une taille de police racine.