Générateur et validateur de JSON Schema

Générez un JSON Schema à partir d'un échantillon ou validez un document JSON par rapport à un schéma, directement dans votre navigateur. Vos données ne quittent jamais votre appareil.

La génération de schéma et la validation ajv s'exécutent localement dans votre navigateur, donc votre échantillon JSON, votre schéma et votre document ne sont jamais téléversés.

Besoin de types TypeScript à la place ? Essayez JSON vers TypeScript.

À propos de JSON Schema

Ce générateur de JSON Schema transforme un échantillon JSON en un JSON Schema prêt à l'emploi, et le validateur intégré vérifie n'importe quel document JSON par rapport à un schéma que vous fournissez. En mode Générer, il parcourt votre échantillon, déduit les types pour les objets, tableaux, chaînes, nombres, booléens et null, unifie les éléments de tableau, et peut marquer chaque propriété comme requise, fixer additionalProperties à false et détecter des formats de chaîne comme email, date, date-time, uri et uuid. Choisissez draft-07 ou draft 2020-12 pour la sortie. En mode Valider, il exécute ajv avec allErrors et ajv-formats, puis liste chaque échec avec son chemin d'instance et son message. Il est conçu pour les développeurs d'API, les ingénieurs backend et toute personne qui définit ou teste des contrats JSON. Tout s'exécute dans votre navigateur, donc l'échantillon et le schéma que vous collez restent sur votre appareil.

Fonctionnalités

Comment utiliser JSON Schema

  1. Choisissez Générer pour construire un schéma, ou Valider pour vérifier un document.
  2. En mode Générer, collez un échantillon JSON et activez les options required, additionalProperties et format.
  3. Choisissez draft-07 ou draft 2020-12, puis copiez ou téléchargez le schema.json résultant.
  4. En mode Valider, collez un JSON Schema à gauche et un document JSON à droite.
  5. Lisez le badge valide/invalide et la liste des erreurs, chacune avec un chemin d'instance.

Exemple

Entrée

{
  "id": 1,
  "name": "Ada",
  "email": "ada@example.com",
  "tags": ["a", "b"]
}

Sortie

{
  "$schema": "http://json-schema.org/draft-07/schema#",
  "type": "object",
  "properties": {
    "id": { "type": "integer" },
    "name": { "type": "string" },
    "email": { "type": "string", "format": "email" },
    "tags": { "type": "array", "items": { "type": "string" } }
  },
  "required": ["id", "name", "email", "tags"]
}

Avec la déduction de required et de format activée, l'échantillon produit un schéma draft-07.

Erreurs courantes et dépannage

Foire aux questions

Quel draft de JSON Schema le générateur utilise-t-il ?
draft-07 par défaut, avec une option pour draft 2020-12. Le choix définit l'URL de dialecte $schema sur la sortie ainsi que les différences mineures entre les drafts ; la structure déduite reste par ailleurs la même.
Comment les propriétés requises sont-elles décidées lors de la génération d'un schéma ?
Par défaut, aucune propriété n'est marquée comme requise, donc le schéma accepte les objets partiels. Activez « Marquer toutes les propriétés comme requises » pour ajouter chaque clé de chaque objet à son tableau required.
Comment le validateur signale-t-il les erreurs ?
Il exécute ajv avec allErrors activé, vous obtenez donc tous les échecs d'un coup. Chaque erreur affiche le chemin d'instance JSON (comme /items/0/id) et un message lisible, y compris les clés requises manquantes et les propriétés additionnelles inattendues.
Le générateur déduit-il les formats de chaîne comme email ou date ?
Oui, lorsque « Déduire les formats de chaîne » est activé. Il compare les valeurs de chaîne de l'échantillon à des motifs pour email, date, date-time, uri et uuid et ajoute le mot-clé format correspondant ; les valeurs qui n'en correspondent à aucun restent de simples chaînes.
Comment déduit-il le schéma des tableaux ?
Il fusionne les schémas de tous les éléments du tableau en un seul schéma items. Les éléments objets mixtes sont fusionnés propriété par propriété, une clé absente d'un élément quelconque sort de required, et un tableau vide devient items:{}.
Mon échantillon JSON ou mon schéma est-il téléversé quelque part ?
Non. La génération et la validation, y compris ajv, s'exécutent entièrement dans votre navigateur, donc l'échantillon, le schéma et le document que vous collez sont traités localement et restent sur votre appareil.

Outils associés

Tous les outils ArrayKit