Validateur de schéma JSON

Validez des données JSON par rapport à des définitions de schéma JSON. Obtenez des rapports d'erreurs détaillés avec chemins d'accès. Tout le traitement est effectué dans votre navigateur.

Validation instantanée Détails des erreurs Traitement côté client

Comment utiliser le validateur de schéma JSON

1

Entrez le schéma

Définissez votre schéma JSON qui décrit la structure attendue.

2

Entrez les données

Collez les données JSON que vous souhaitez valider par rapport au schéma.

3

Validez

Cliquez sur Valider et consultez les résultats pour détecter d'éventuelles erreurs.

Qu'est-ce qu'un schéma JSON ?

Un schéma JSON est un vocabulaire qui permet d'annoter et de valider des documents JSON. Il fournit un contrat décrivant quelles données JSON sont requises pour une application donnée et comment interagir avec elles. Le schéma JSON est utilisé pour la validation, la documentation et la génération de données de test.

Caractéristiques principales

Validation de type

Validez les types : chaîne, nombre, entier, booléen, tableau, objet, null

Contraintes

Longueur min/max, plage, motif, champs obligatoires et plus encore

Définition de structure

Définissez des objets imbriqués, des tableaux et des structures de données complexes

Questions fréquentes

Quelle version de schéma JSON est prise en charge ?

Cet outil prend en charge JSON Schema Draft-07, Draft 2019-09 et Draft 2020-12 via la bibliothèque Ajv. La plupart des fonctionnalités de schéma courantes sont prises en charge.

Puis-je valider des objets imbriqués ?

Oui ! Le schéma JSON prend en charge les objets et tableaux profondément imbriqués. Vous pouvez définir des propriétés et des éléments à n'importe quel niveau d'imbrication, avec des règles de validation individuelles pour chaque champ.

Que se passe-t-il si mon schéma est invalide ?

L'outil vérifie d'abord que votre schéma est lui-même un schéma JSON valide. Si le schéma contient des erreurs, celles-ci seront signalées avant de tenter de valider les données.

Quels mots-clés JSON Schema sont les plus utilisés ?

type (string, number, object, array, boolean, null), properties avec des schémas imbriqués, required qui liste les clés obligatoires, enum pour des ensembles de valeurs fixes, pattern pour les chaînes contraintes par des regex, et les contrôles de plage minimum/maximum et minLength/maxLength. additionalProperties: false resserre les objets en interdisant les clés supplémentaires. Ensemble, ils couvrent l'essentiel des règles de validation d'API.

Comment se comportent les mots-clés format comme date-time et email ?

Dans JSON Schema moderne, format est une annotation par défaut, et non une assertion automatique - les validateurs ne l'appliquent que s'ils sont configurés en ce sens, ce que la spécification 2020-12 a rendu explicite avec un vocabulaire format-assertion distinct. Utilisez pattern ou un mot-clé personnalisé lorsque l'application de la règle doit être garantie, et traitez sinon format comme une métadonnée d'interopérabilité.

Qu'est-ce que $ref et comment fonctionne la réutilisation de schémas ?

Un $ref pointant vers #/$defs/address référence un fragment de schéma sous $defs et valide par rapport à celui-ci partout où il est utilisé - c'est le mécanisme de déduplication. Le draft 2020-12 a renommé l'ancien definitions en $defs et a formalisé $dynamicRef pour les structures récursives comme les arbres de commentaires. Les références peuvent aussi pointer vers des documents externes, mais le bundling en local est plus courant.

Quelle est la différence entre oneOf, anyOf et allOf ?

allOf exige que chaque sous-schéma valide - une intersection, utilisée pour composer un schéma de base avec des contraintes supplémentaires. anyOf en exige au moins un - une union, utilisée pour des payloads polymorphes. oneOf en exige exactement un ; la validation de deux sous-schémas ou d'aucun échoue, ce qui est plus strict qu'on ne le pense généralement et constitue la cause habituelle d'erreurs surprenantes avec des schémas qui se chevauchent.

Qu'est-ce qui a changé entre draft-07 et 2020-12 ?

2020-12 a scindé la spécification en vocabulaires négociables séparément (validation, annotation, format-assertion), a renommé definitions en $defs, a simplifié exclusiveMinimum en un simple nombre, et a remplacé l'ancien mot-clé items par prefixItems combiné à items. La plupart des outils prennent en charge les deux ; draft-07 reste le plus largement déployé, mais 2020-12 est la norme publiée actuelle.

{-- * External Resources Component(#18 Phase 3b 内容佐证工程) * 工具页「权威引用」区块:RFC / W3C / WHATWG / ECMA / IANA / 官方规范站 / Wikipedia。 * * - 接受 :slug 属性 → 经 config/tool-sources.php 家族矩阵渲染该工具的权威引用 * - slug 未命中映射时不渲染(无权威来源的工具静默跳过) * - 链接 title 保持英文(引用源专名);description 经 * common.resources.descriptions.{key} 本地化,lang 未命中回退英文(线上不裸奔) * - 链接保持 dofollow(rel="noopener noreferrer") * * @param string|null $slug --}}