DevToolPal
FR

Validateur JSON Schema

Validez des données JSON avec un JSON Schema (2020-12, 2019-09, draft-07 ou draft-04) et affichez chaque erreur avec son chemin.

Traitement local, rien n'est envoyé

Options

Données JSON

JSON Schema

Résultat de la validation

Le résultat s'affiche ici

À quoi ça sert

JSON Schema est un vocabulaire qui décrit la forme de données JSON : propriétés obligatoires d’un objet, type de chaque valeur, plages et motifs autorisés, longueur des tableaux, et bien plus. Les API l’utilisent dans leurs spécifications OpenAPI, les éditeurs pour l’autocomplétion des fichiers de configuration et les back-ends pour rejeter les requêtes incorrectes.

Ce validateur vérifie un document JSON par rapport à un schéma et liste chaque problème trouvé. Chaque erreur indique son emplacement dans les données (un JSON Pointer comme /tags/1), un message lisible et le mot-clé du schéma en échec, pour corriger rapidement les données ou le schéma. Il prend en charge draft 2020-12, 2019-09, draft-07 et draft-04, avec $ref, $defs, allOf/anyOf/oneOf, if/then/else, unevaluatedProperties et la vérification des formats.

Mode d’emploi

  1. Collez les données dans Données JSON et le schéma dans JSON Schema, ou importez un fichier de chaque côté. Exemple charge une fiche utilisateur contenant quelques erreurs volontaires.
  2. Le résultat se met à jour pendant la saisie : un badge vert si les données sont valides, sinon le nombre d’erreurs et leur liste.
  3. Laissez Version sur Automatique pour suivre $schema, ou imposez une version. Désactivez Afficher toutes les erreurs pour vous arrêter au premier échec.
  4. Copier les erreurs copie la liste en texte brut, pour un rapport de bug ou une revue de code.

Si l’un des deux côtés n’est pas du JSON valide, le message précise si ce sont les données ou le schéma, avec la ligne et la colonne.

Exemple

Avec ce schéma :

{
  "type": "object",
  "required": ["id"],
  "properties": {
    "id": { "type": "integer" },
    "age": { "type": "integer", "minimum": 0 }
  }
}

le document {"age": -1} produit deux erreurs : à la (racine), la propriété obligatoire id manque ; en /age, la valeur est inférieure au minimum de 0.

Conseils

Ajoutez "additionalProperties": false pour repérer les noms de propriétés mal orthographiés, qui passent sinon inaperçus. Utilisez enum ou const pour les valeurs fixes et pattern pour des chaînes comme des codes produit. Quand le schéma grossit, déplacez les parties répétées dans $defs et référencez-les avec $ref.

FAQ

› Quelles versions de JSON Schema sont prises en charge ?

Draft 2020-12, 2019-09, draft-07 (qui couvre aussi draft-06) et draft-04. Avec Version sur Automatique, la version est lue dans le mot-clé $schema ; un schéma sans $schema est traité comme 2020-12.

› Que signifient les chemins des erreurs ?

Le premier chemin est un JSON Pointer vers la valeur fautive de vos données, comme /items/2/price ; (racine) désigne le document entier. La ligne grise indique le mot-clé en échec et son emplacement dans le schéma, comme minimum · #/properties/age/minimum.

› Les formats comme email et date-time sont-ils vérifiés ?

Oui. Les formats courants sont validés : date, time, date-time, duration, email, hostname, ipv4, ipv6, uri, uri-reference, uuid, regex, json-pointer et d’autres. Les formats inconnus sont ignorés, comme l’autorise la spécification.

› Le schéma peut-il référencer d’autres fichiers ?

Les références internes au schéma fonctionnent, par exemple un $ref vers #/$defs/address. Les URL externes ne sont pas téléchargées, car rien ne quitte votre navigateur ; collez les définitions référencées dans $defs.