Quel est le générateur de schéma JSON ?

Le générateur de schéma JSON lit un exemple de valeur JSON - une réponse API, un fichier de configuration, une charge utile de webhook - et écrit un schéma JSON qui le valide. Il infère le type de chaque champ, fusionne un tableau d'objets en un seul schéma d'élément plutôt qu'en une union bruyante, dérive quelles clés sont requises de celles présentes dans chaque enregistrement et peut marquer les formats de chaînes tels que date-heure, e-mail, uri et uid. Vous collez les données que vous possédez déjà ; vous obtenez le schéma que vous écririez autrement à la main clause par clause.
Écrire un schéma à la main est lent et facile à se tromper subtilement Il est tentant de taper ce que vous pensez qu'une charge utile contient, manquer un champ imbriqué, marquer une propriété occasionnellement nulle comme requis, ou oublier qu'un point de terminaison renvoie un tableau où un autre renvoie un seul objet Un schéma généré directement à partir de données réelles part de la forme réelle, donc le document que vous validez correspond à ce que le service envoie véritablement De là vous resserrez les contraintes - motifs, enuméros, minimums - à la main, mais le fastidieux échafaudage est fait.
Tout tourne dans votre navigateur Le moteur d'inférence est TypeScript sans dépendance, pas un wrapper autour d'une API hébergée, donc les charges utiles - qui transportent régulièrement des jetons, des e-mails et des ID internes - ne quittent jamais la page Choisissez Draft-07 ou le dialecte 2020-12, ajoutez un titre, basculez la détection de champ requis, la détection de format et le strict`additionalProperties`, puis copiez le schéma ou téléchargez-le sous forme de fichier.json.
Le schéma décrit votre échantillon plutôt que votre intention, alors traitez la sortie comme une première ébauche : les champs obligatoires sont déduits de ce qui se trouve être présent et les formats sont détectés par modèle, donc une chaîne qui ressemble à une date est saisie comme une seule même. lorsqu'il s'agit d'un identifiant qui n'en ressemble qu'à un.
Comment utiliser le générateur de schéma JSON ?
Collez votre JSON
Déposez une réponse API, un luminaire ou une valeur JSON. Chargez d'abord l'exemple pour voir comment les objets imbriqués, les tableaux d'objets et les formats de chaîne sont gérés.
Choisissez le dialecte
Choisissez Draft-07 pour le support d'outillage le plus large ou 2020-12 pour la spécification actuelle. L'URI $schéma correct est écrit sur la sortie pour vous.
Définissez vos options
Ajoutez un titre facultatif, décidez s'il faut émettre un tableau requis, détecter les formats de chaîne et verrouiller les objets avec des propriétés supplémentaires : false pour une validation stricte.
Générer, puis copier ou télécharger
Appuyez sur Générer. Vérifiez les types de données et les champs obligatoires, puis copiez le schéma dans votre presse-papiers ou téléchargez-le sous la forme d'un fichier .json prêt à être déposé dans votre validateur.
Principales caractéristiques
Draft-07 et 2020-12
Émettez le dialecte Draft-07 largement pris en charge ou la spécification actuelle 2020-12. L'identifiant de schéma $ correspondant est écrit sur la racine afin que les validateurs choisissent les bonnes règles.
Fusion de réseau intelligent
Un tableau d'objets devient un schéma d'éléments uniques décrivant un élément, et non un tentaculaire. Les clés présentes dans chaque élément sont requises ; les clés qui apparaissent dans certaines sont laissées en option.
Inférence de champ obligatoire
Le générateur dérive le tableau requis à partir des clés présentes dans chaque objet qu'il voit, ce qui correspond exactement au comportement des données paginées réelles - certains champs sont toujours là, d'autres non.
Détection de format de chaîne
Reconnaît les chaînes de date-heure, date, heure, e-mail, URI, UUID et IPv4 et les tagne avec le mot-clé de format approprié, vous donnant une validation que vous ajouteriez autrement à la main.
Frequently Asked Questions
Related Tools
JSON Flattener
Flatten nested JSON into single-level dot-notation keys, or unflatten dotted keys back into nested objects and arrays. Lossless round trip. 100% client-side.
JSON to Go Struct
Convert JSON into Go struct definitions with json tags. Nested objects become inline structs, arrays of objects are merged, and field names follow Go conventions. Runs client-side.
JSON to TypeScript
Generate TypeScript interfaces from any JSON sample. Infers nested types, merges arrays of objects into a single interface, marks nullable and missing keys optional, and emits clean exportable code. 100% client-side.
JSONPath Tester
Test JSONPath expressions against any JSON and see the matched values and their paths instantly. Supports wildcards, recursive descent, slices, and filters. 100% client-side.
Comments
0 comments
No comments yet. Be the first to share your thoughts!