Generador de JSON Schema
Convierte ejemplos reales en un JSON Schema preciso y pruébalo con otros documentos sin salir de la página.
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"email": {
"type": "string",
"format": "email"
},
"role": {
"type": "string"
},
"createdAt": {
"type": "string",
"format": "date-time"
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"profile": {
"type": "object",
"properties": {
"city": {
"type": "string"
},
"zip": {
"type": "string"
}
},
"required": [
"city"
]
},
"phone": {
"type": "null"
}
},
"required": [
"id",
"email",
"role",
"createdAt",
"tags",
"profile"
]
}Probar el schema con otro JSON
5 errores
- /id — tipo incorrecto, se esperaba integer
- /email — no cumple el formato email
- /createdAt — no cumple el formato date-time
- /tags/0 — tipo incorrecto, se esperaba string
- /profile — falta la propiedad obligatoria «city»
Límites
- El schema describe los ejemplos que das: un enum o un rango observado puede ser demasiado estricto para datos futuros. Revísalo antes de publicarlo.
- El validador integrado cubre las palabras clave que genera la herramienta (type, properties, required, items, anyOf, enum, format, rangos). Para schemas escritos a mano con $ref, oneOf o patrones usa un validador completo como Ajv.
- La salida se ha contrastado con Ajv sobre cientos de documentos válidos y mutados.
- Todo se procesa en tu navegador.
Hecho por
Miguel Ángel Colorado Marin (MACM)
Hecho por
Miguel Ángel Colorado Marin (MACM)
Full-Stack Developer · Guadalajara, España
Desarrollo aplicaciones web, herramientas digitales y proyectos completos — desde el diseño hasta el despliegue.
Escribir un JSON Schema a mano para una API o un fichero de configuración es tedioso: hay que decidir tipos, obligatorios, formatos y nulos campo a campo. Este generador lo deduce de ejemplos reales. Con varias muestras distingue qué propiedades aparecen siempre y cuáles son opcionales, qué campos admiten null y cuándo un valor cambia de tipo. Después puedes pegar otro documento y ver al momento qué incumple y en qué ruta, algo que la mayoría de generadores no ofrece. La salida se ha contrastado con Ajv sobre cientos de documentos válidos y mutados.
Características
- ✓JSON Schema draft 2020-12 o draft-07 con $id y título opcionales
- ✓Fusiona varios ejemplos: required solo para las claves presentes en todos
- ✓Tipos nullables como ["string", "null"] y anyOf cuando un campo mezcla objetos, arrays y valores
- ✓Detecta formatos email, uri, uuid, date, date-time, ipv4 e ipv6
- ✓enum automático para valores repetidos con límite configurable
- ✓Mínimos, máximos, longitudes y número de elementos observados, opcionales
- ✓additionalProperties: false para schemas estrictos y examples opcionales
- ✓Validador integrado para probar el schema con otro JSON y ver cada error por ruta
¿Cómo generar un JSON Schema desde un JSON?
- 1
Pega uno o varios ejemplos
Pega un objeto o un array de objetos. Si el array raíz son ejemplos distintos, deja activada esa opción.
- 2
Configura el schema
Elige draft, criterio de obligatorios, formatos, enum, rangos y si se permiten propiedades extra.
- 3
Revisa y exporta
Copia el schema o descárgalo como schema.json.
- 4
Pruébalo
Pega otro JSON en el validador para comprobar que el schema acepta y rechaza lo que esperas.
Preguntas frecuentes
¿Qué es un JSON Schema?
Es un estándar para describir la estructura de un documento JSON: tipos, propiedades obligatorias, formatos y restricciones. Se usa para validar peticiones de API, documentar contratos en OpenAPI y dar autocompletado en editores.
¿Uso draft 2020-12 o draft-07?
2020-12 es la versión actual y la que usa OpenAPI 3.1. Draft-07 sigue siendo muy común en validadores antiguos y configuraciones de editores. Para las palabras clave que genera esta herramienta, la estructura es la misma y solo cambia la URL de $schema.
¿Cómo decide qué propiedades son obligatorias?
Por defecto, una propiedad es obligatoria si aparece en todos los objetos analizados. También puedes marcar como obligatorias todas las claves vistas o ninguna.
¿Por qué el enum o los rangos pueden ser peligrosos?
Porque describen solo los datos de ejemplo. Si tus muestras tienen los roles admin y user, un tercer rol válido en producción fallaría. Actívalos cuando los ejemplos sean representativos.
¿Se envían mis datos a algún servidor?
No. La generación y la validación se hacen en tu navegador.
Herramientas relacionadas
Incrusta Generador de JSON Schema en tu web
Integra Generador de JSON Schema en cualquier página web con un simple iframe. Gratis, con atribución a miguelacm.es.
<iframe
src="https://miguelacm.es/embed/json-schema-generator"
width="100%"
height="700"
frameborder="0"
title="Generador de JSON Schema — miguelacm.es"
></iframe>Ver embed en nueva pestaña →