JSON vers JSON Schema
JSON to JSON Schema
Déduit un JSON Schema à partir d’un ou plusieurs échantillons, en réunissant les formes rencontrées.
Décrit un document d'exemple sous forme de JSON Schema (2020-12) : types, propriétés, `required` et `$defs` imbriquées pour les formes répétées. Utile pour un test de contrat, un composant OpenAPI, ou partout où un validateur attend un schéma plutôt qu'un exemple.
JSON d’exemple
Déposez un fichier .json
Lu dans cet onglet. Rien n’est envoyé.
Donnez-lui tous les éléments dont vous disposez. Chaque enregistrement supplémentaire resserre la déduction : un champ absent de l’un d’eux est précisément ce qui le rend facultatif.
TypeScript
Comment s’en servir
Collez autant d'enregistrements que vous en avez
Chaque élément de chaque tableau est lu et fusionné, pas seulement le premier. Trois enregistrements en disent bien plus qu'un seul, car un champ absent de l'un d'eux est précisément ce qui rend ce champ facultatif.
Nommez le type racine
Les objets imbriqués sont nommés d'après la clé qui les porte, mise au singulier pour les tableaux : `users` donne donc un `User`. Seule la racine attend un nom de votre part.
Lisez les décomptes sous la sortie
Types, champs facultatifs, unions et nombre d'enregistrements fusionnés. Un décompte d'unions supérieur à zéro signifie qu'un champ portait deux sortes de valeurs différentes dans votre échantillon — cela vaut la peine d'y regarder avant de coller le résultat dans une base de code.
Emmenez le schéma vers un validateur
La sortie porte son mot-clé `$schema` : elle peut aller directement dans le validateur JSON Schema de ce site ou dans n'importe quelle implémentation 2020-12.
Questions fréquentes
De quel draft s'agit-il ?
Le draft 2020-12, déclaré dans le mot-clé `$schema`. Les formes réutilisables vont dans `$defs` et sont référencées par `$ref`, l'orthographe de ce draft ; l'outillage Draft-07 attend `definitions` à la place et ne résoudra pas ces références.
Pourquoi rien n'est-il contraint au-delà de son type ?
Aucun `format`, `minLength`, `pattern` ni `enum` n'est émis. Chacun d'eux serait inféré à partir d'une poignée d'enregistrements, et un schéma qui rejette des données de production valides est pire qu'un schéma simplement trop large. Ajoutez les contraintes que vous pouvez réellement justifier.
`additionalProperties` est-il défini ?
Il est laissé ouvert, ce qui veut dire que des clés supplémentaires passent la validation. Le fermer transformerait chaque champ que l'API ajoutera plus tard en échec de validation, et un échantillon ne peut pas vous dire si la forme est censée être fermée.
Comment décide-t-il de ce qui va dans `required` ?
Une propriété est requise lorsqu'elle était présente dans chaque enregistrement fusionné dans cette forme. Collez un seul enregistrement et tout est requis ; collez-en cinq et le schéma commence à vous dire quelque chose de réel.
À alimenter depuis
JSON vers TypeScript
JSON to TypeScript
Déduit des interfaces ou des types TypeScript à partir d’un échantillon JSON, en fusionnant les champs facultatifs et les unions.
JSON vers schéma Zod
JSON to Zod Schema
Construit un schéma Zod à partir d’un échantillon JSON, avec déduction des champs nuls, facultatifs et des énumérations.
Validateur JSON Schema
JSON Schema Validator
Valide un document contre un JSON Schema et rapporte chaque échec avec le chemin exact dans l’instance.
Formateur et validateur JSON
JSON Formatter & Validator
Met en forme, minifie et valide du JSON en désignant la ligne et la colonne exactes de l’erreur de syntaxe.
Ensuite
Ces outils acceptent ce que celui-ci produit : le résultat peut y aller directement.
Validateur JSON Schema
JSON Schema Validator
Valide un document contre un JSON Schema et rapporte chaque échec avec le chemin exact dans l’instance.
JSON vers TypeScript
JSON to TypeScript
Déduit des interfaces ou des types TypeScript à partir d’un échantillon JSON, en fusionnant les champs facultatifs et les unions.
JSON vers schéma Zod
JSON to Zod Schema
Construit un schéma Zod à partir d’un échantillon JSON, avec déduction des champs nuls, facultatifs et des énumérations.
Analyseur OpenAPI
OpenAPI Linter
Contrôle un document OpenAPI et signale les réponses manquantes, les schémas inutilisés, les références qui ne pointent sur rien et les autres défauts qui cassent les générateurs de code.
Conversion JSON ⇄ CSV
JSON ⇄ CSV
Aplatit du JSON imbriqué en colonnes ou reconstruit des objets depuis un tableau, avec un nommage des colonnes par chemin pointé.
Comparateur JSON
JSON Diff
Compare deux documents JSON sur leur structure, sans tenir compte de l’ordre des clés, et signale les chemins ajoutés, retirés et modifiés.