Herramienta de Tool Kumar
Generador de JSON Schema
Usa un documento JSON representativo para crear un esquema preliminar en JSON Schema. El resultado describe la estructura observada y te da un punto de partida para la validación.
Cómo usar esta herramienta
- Pega un documento de ejemplo.
- Elige JSON Schema en la vista Convertir.
- Revisa las propiedades inferidas y guarda el esquema.
Ejemplo práctico
El esquema se genera a partir del objeto de ejemplo, incluidos profile y tags anidados. Todas las propiedades están presentes en este único objeto, así que todas son obligatorias.
Entrada
{"name":"Ada","age":36,"active":true,"tags":["json","tools"],"profile":{"city":"London"}}Salida
{
"$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"]
}
}
}
Cómo se eligen las propiedades obligatorias
Si generas un esquema a partir de varios registros, la lista required conserva solo las claves presentes en todos ellos. En este ejemplo, ambos usuarios tienen id y email, pero solo el primero tiene phone, por lo que phone se describe sin ser obligatorio.
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"]
}
}
}Opciones y casos especiales
- Los objetos y arrays anidados se representan de forma recursiva.
- Una propiedad se incluye en required cuando está presente en todos los objetos de muestra de esa posición. Por tanto, una sola muestra completa hace que todas las propiedades observadas sean obligatorias; en un array de objetos, una clave ausente en algunos objetos se vuelve opcional.
- Los valores null en algunos objetos añaden null al tipo de la propiedad en lugar de hacerla opcional.
- La salida es un punto de partida. Revisa required, añade formatos, rangos y patrones, y elimina todo lo que el contrato de tu API no garantice.
- Esta página genera un esquema; no valida un documento frente a uno. Usa la página del validador para comprobar la sintaxis JSON antes de generar el esquema.
Privado por defecto
Tu documento permanece en este navegador. Tool Kumar analiza, convierte y crea las descargas en tu dispositivo, sin cuenta ni pasos para subir archivos.
Preguntas sobre Generador de JSON Schema
- ¿El generador marca todas las propiedades como obligatorias?
- Solo las propiedades presentes en todos los objetos de muestra. Una sola muestra completa marca todas sus propiedades como obligatorias, mientras que una clave ausente en algunos objetos de un array se vuelve opcional. Revisa la lista required según el contrato de tu API antes de publicar el esquema.
- ¿Qué versión utiliza?
- La salida declara JSON Schema Draft 2020-12 con las palabras clave estándar type y properties.
- ¿Puede inferir la estructura de los elementos de un array?
- Sí. Los arrays de objetos generan un esquema items basado en la estructura observada de los objetos.