Outil Tool Kumar
Générateur JSON Schema
Créez une première version d'un JSON Schema à partir d'un document JSON représentatif. Le résultat décrit la structure observée et vous donne une base pour la validation.
Utiliser cet outil
- Collez un document d'exemple.
- Choisissez JSON Schema dans la vue « Convertir ».
- Vérifiez les propriétés déduites et enregistrez le schéma.
Exemple détaillé
Le schéma est généré à partir de l'objet d'exemple, y compris les éléments imbriqués profile et tags. Toutes les propriétés sont présentes dans cet objet unique et sont donc toutes obligatoires.
Entrée
{"name":"Ada","age":36,"active":true,"tags":["json","tools"],"profile":{"city":"London"}}Sortie
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Root",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"age": {
"type": "integer"
},
"active": {
"type": "boolean"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"profile": {
"$ref": "#/$defs/Profile"
}
},
"required": ["name", "age", "active", "tags", "profile"],
"$defs": {
"Profile": {
"type": "object",
"properties": {
"city": {
"type": "string"
}
},
"required": ["city"]
}
}
}
Comment sont choisies les propriétés obligatoires
Lorsque vous générez un schéma à partir de plusieurs enregistrements, la liste required ne conserve que les clés présentes dans chacun d'eux. Dans cet exemple, les deux utilisateurs ont id et email, mais seul le premier a phone. La propriété phone est donc décrite, mais elle n'est pas obligatoire.
Input:
[{"id":1,"email":"ada@example.com","phone":"+44 20 7946 0000"},{"id":2,"email":"lin@example.com"}]
Generated schema:
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Root",
"type": "array",
"items": {
"$ref": "#/$defs/RootItem"
},
"$defs": {
"RootItem": {
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"email": {
"type": "string",
"format": "email"
},
"phone": {
"type": "string"
}
},
"required": ["id", "email"]
}
}
}Options et cas limites
- Les objets et tableaux imbriqués sont représentés de manière récursive.
- Une propriété figure dans required si tous les objets échantillonnés à cet emplacement la possèdent. Un seul exemple complet rend donc toutes les propriétés observées obligatoires ; dans un tableau d'objets, une clé absente de certains objets devient facultative.
- Lorsqu'une propriété vaut null dans certains objets, null est ajouté à son type au lieu de la rendre facultative.
- La sortie est un point de départ. Vérifiez required, ajoutez des formats, des plages de valeurs et des motifs, puis supprimez tout ce que votre contrat d'API ne garantit pas.
- Cette page génère un schéma ; elle ne valide pas un document selon un schéma. Utilisez la page du validateur pour vérifier la syntaxe JSON avant la génération.
Privé par défaut
Votre document reste dans ce navigateur. Tool Kumar analyse, convertit et crée les téléchargements sur votre appareil, sans compte ni étape d'envoi au serveur.
Générateur JSON Schema : questions fréquentes
- Le générateur rend-il toutes les propriétés obligatoires ?
- Uniquement les propriétés que possèdent tous les objets échantillonnés. Un seul exemple complet rend toutes ses propriétés obligatoires, tandis qu'une clé absente de certains objets d'un tableau devient facultative. Vérifiez la liste required selon votre contrat d'API avant de publier le schéma.
- Quelle version de JSON Schema utilise-t-il ?
- La sortie déclare JSON Schema Draft 2020-12 avec les mots-clés standard type et properties.
- Peut-il déduire la structure des éléments d'un tableau ?
- Oui. Les tableaux d'objets produisent un schéma items fondé sur la structure des objets observés.