Generateur de JSON Schema
Generez un brouillon de JSON Schema a partir d'un echantillon JSON dans le navigateur - sans compte, sans televersement, sans CLI.
À propos de Generateur de JSON Schema
Generez un brouillon de JSON Schema a partir d'un echantillon JSON dans le navigateur - sans compte, sans televersement, sans CLI. Collez une reponse API ou, mieux, un tableau d'enregistrements. Les objets imbriques deviennent des schemas imbriques, les tableaux sont types a partir de chaque element (pas seulement le premier), et les cles absentes sur certains elements deviennent optionnelles (hors de required). JSON null devient un type nullable au lieu de se fondre avec optionnel. Les formats sont inferes quand les valeurs ressemblent a email, uri, uuid, date ou date-time. Choisissez Draft-07 ou 2020-12, puis copiez ou telechargez le schema. Associez-le au Convertisseur JSON vers TypeScript pour des interfaces depuis le meme echantillon, ou au Minificateur JSON si la charge utile est arrivee minifiee.
Comment utiliser Generateur de JSON Schema
- Collez du JSON (un tableau d'enregistrements inferent mieux les cles optionnelles qu'un seul objet). Chargez un exemple pour voir optionnel vs nullable.
- Definissez le titre du schema et choisissez Draft-07 (par defaut) ou 2020-12. Decidez si les objets rejettent ou autorisent les proprietes additionnelles.
- Lisez le rapport : proprietes, requises, optionnelles et formats. Les avertissements signalent tableaux vides, objets vides, champs uniquement null et unions mixtes.
- Copiez le JSON Schema ou telechargez un .schema.json. Utilisez-le avec AJV, OpenAPI ou des validateurs CI.
- Rien n'est envoye a un serveur. Un JSON invalide indique la ligne et la colonne.
Exemples de Generateur de JSON Schema
Cle optionnelle depuis un tableau d'enregistrements
[{"sku":"A1","qty":2},{"sku":"B7","qty":1,"gift":true}] produit un schema de tableau dont items exige sku et qty, tandis que gift est optionnel (absent de required).
Nullable vs optionnel
Deux utilisateurs ou email manque sur une ligne et note est null sur l'autre emettent email en string optionnelle et note en type ["string","null"]. Cles absentes et JSON null restent distincts.
Indices de format pour les chaines
Les valeurs qui ressemblent a des emails, URL https, UUID, dates ISO ou date-time recoivent format: email, uri, uuid, date ou date-time.
Conteneurs vides
{"items":[],"meta":{}} type items comme tableau avec items vide et meta comme objet sans properties. Les avertissements demandent un echantillon plus riche.
Draft-07 vs 2020-12
Les deux brouillons partagent la meme forme inferee. Draft-07 utilise l'URI classique que la plupart des outils attendent encore. Passez a 2020-12 si votre stack documente ce dialecte.
Cas d'utilisation courants
- Brouillon de JSON Schema avant qu'OpenAPI / AsyncAPI existe
- Valider des webhooks (Stripe, GitHub, Slack) en CI avec AJV
- Transformer un fixture en contrat pour les tests
- Demarrer des schemas pour configs et feature flags
- Associer a des interfaces TypeScript depuis le meme JSON
Questions fréquentes sur Generateur de JSON Schema
- Comment generer un JSON Schema depuis un echantillon JSON ?
- Collez un echantillon JSON, definissez un titre, choisissez un draft et copiez le schema. La generation s'execute dans le navigateur. Objets et tableaux sont parcourus en entier, et les cles absentes sur certains elements sont omises de required.
- Quelle est la difference entre optionnel et nullable ?
- Optionnel signifie que la cle manquait sur certains elements du tableau, donc elle n'est pas dans required. Nullable signifie que la cle etait presente et la valeur etait JSON null, donc le type inclut null (par exemple type: ["string","null"]). Ce generateur ne les fond pas sauf si l'echantillon montre les deux.
- Quel brouillon JSON Schema dois-je utiliser ?
- Draft-07 reste le plus compatible avec validateurs et editeurs. Utilisez 2020-12 quand votre outillage attend explicitement ce $schema. Les properties inferrees sont les memes.
- Pourquoi items ou properties sont-ils vides ?
- Les tableaux vides n'ont aucun element a inspecter, donc items est {}. Les objets vides n'ont aucune cle, donc properties est vide. Collez un exemple rempli pour des types concrets.
- Les formats de chaine sont-ils toujours corrects ?
- Ce sont des heuristiques a partir de l'echantillon (email, uri, uuid, date, date-time). Relisez-les avant de figer un contrat de production.
- Mon JSON est-il televerse ?
- Non. La generation s'execute uniquement dans cet onglet. L'echantillon ne quitte pas votre navigateur.
- En quoi cela differe-t-il du convertisseur JSON vers TypeScript ?
- Les deux parcourent le meme type d'echantillon. Cette page emet du JSON Schema pour validateurs et brouillons OpenAPI. Le convertisseur TypeScript emet des interfaces ou type aliases pour le code. Utilisez les deux depuis la meme charge utile si vous avez besoin d'un contrat et de clients types.
- additionalProperties: false rejette-t-il les cles inconnues ?
- Oui si vous laissez Rejeter les extras actif. Utile pour des contrats d'API stricts. Passez a Autoriser les extras si les clients peuvent envoyer des champs absents de l'echantillon.
Outils connexes
Convertisseur JSON vers interface TypeScript
Convertisseur JSON vers interface TypeScript gratuit. Collez un JSON, générez des interfaces imbriquees ou des type aliases, et separez les cles optionnelles de JSON null. Rien n'est envoye.
Minificateur et formateur JSON
Minificateur et formateur JSON en ligne gratuits. Réduisez JSON pour réduire les charges utiles ou embellir (joli-imprimer) JSON avec une indentation de 2 espaces. Valide au fur et à mesure - aucun téléchargement requis.
Testeur JSONPath
Testez JSONPath en ligne dans le navigateur. Extraire un champ du JSON, essayer un filtre et copier les chemins normalises - rien n'est envoye.
Comparateur JSON Diff
Diff structurel JSON gratuit dans le navigateur. Comparez deux documents par cles et valeurs - pas par ordre des lignes. Rien n'est envoye.