Generador y Validador de JSON Schema
Genera un JSON Schema a partir de una muestra o valida un documento JSON contra uno, directo en tu navegador. Tus datos nunca salen de tu dispositivo.
La generación del esquema y la validación con Ajv se ejecutan localmente en tu navegador, así que tu muestra JSON, esquema y documento nunca se suben.
¿Necesitas tipos de TypeScript en su lugar? Prueba JSON a TypeScript.
Acerca de JSON Schema
Este generador de JSON Schema convierte una muestra JSON en un JSON Schema listo para usar, y el validador integrado comprueba cualquier documento JSON contra un esquema que proporciones. En el modo Generar recorre tu muestra, infiere tipos para objetos, arreglos, cadenas, números, booleanos y null, unifica los elementos de los arreglos y puede marcar cada propiedad como requerida, fijar additionalProperties en false y detectar formatos de cadena como email, date, date-time, uri y uuid. Elige draft-07 o 2020-12 para la salida. En el modo Validar ejecuta Ajv con allErrors y ajv-formats, luego enumera cada fallo con su ruta de instancia y mensaje. Está pensado para personas que desarrollan API, ingenieros de backend y cualquiera que defina o pruebe contratos JSON. Todo se ejecuta en tu navegador, así que la muestra y el esquema que pegas permanecen en tu dispositivo.
Características
- Infiere un JSON Schema a partir de una muestra JSON pegada con los tipos correctos para objetos, arreglos, cadenas, números, enteros, booleanos y null
- Unifica los elementos de los arreglos en un solo esquema items y emite items:{} para los arreglos vacíos
- Interruptor para marcar cada propiedad como requerida, por objeto
- Interruptor additionalProperties:false para limitar los objetos a las claves conocidas
- Inferencia opcional de formatos de cadena para valores email, date, date-time, uri y uuid
- Elige la salida draft-07 o 2020-12, que define el dialecto $schema
- Valida cualquier documento JSON contra un esquema usando Ajv con allErrors y ajv-formats
- Copia el esquema generado o descárgalo como schema.json
Cómo usar JSON Schema
- Elige Generar para construir un esquema, o Validar para comprobar un documento.
- En Generar, pega una muestra JSON y activa las opciones required, additionalProperties y de formato.
- Elige draft-07 o 2020-12, luego copia o descarga el schema.json resultante.
- En Validar, pega un JSON Schema a la izquierda y un documento JSON a la derecha.
- Lee la insignia de válido/inválido y la lista de errores, cada uno con una ruta de instancia.
Ejemplo
Entrada
{
"id": 1,
"name": "Ada",
"email": "ada@example.com",
"tags": ["a", "b"]
}
Salida
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"id": { "type": "integer" },
"name": { "type": "string" },
"email": { "type": "string", "format": "email" },
"tags": { "type": "array", "items": { "type": "string" } }
},
"required": ["id", "name", "email", "tags"]
}
Con la inferencia de required y de formato activada, la muestra produce un esquema draft-07.
Errores comunes y solución de problemas
- El esquema generado no tiene un arreglo required aunque todas las claves estén presentes. — Activa «Marcar todas las propiedades como requeridas»; por defecto el generador solo infiere tipos y deja required vacío para no sobrerrestringir los campos opcionales.
- La validación informa «Invalid JSON Schema» antes de comprobar el documento. — El panel del esquema en sí debe ser un objeto JSON válido que Ajv pueda compilar; corrige primero la sintaxis JSON o las palabras clave desconocidas en el esquema.
- Un valor que parece una fecha se tipa como una cadena simple. — Activa «Inferir formatos de cadena». La detección es conservadora y solo añade un formato cuando el valor de muestra coincide con el patrón de email, date, date-time, uri o uuid.
- Un validador que espera draft-07 rechaza un esquema 2020-12. — Cambia el selector de draft para que coincida con tu objetivo. Solo cambia la URL de $schema y las diferencias menores de dialecto entre los dos drafts.
Preguntas frecuentes
- ¿Qué draft de JSON Schema usa el generador?
- Draft-07 por defecto, con una opción para 2020-12. La elección define la URL del dialecto $schema en la salida y las diferencias menores entre los drafts; por lo demás la estructura inferida es la misma.
- ¿Cómo se deciden las propiedades requeridas al generar un esquema?
- Por defecto ninguna propiedad se marca como requerida, así que el esquema acepta objetos parciales. Activa «Marcar todas las propiedades como requeridas» para añadir cada clave de cada objeto a su arreglo required.
- ¿Cómo reporta los errores el validador?
- Ejecuta Ajv con allErrors habilitado, así que obtienes todos los fallos a la vez. Cada error muestra la ruta de instancia JSON (como /items/0/id) y un mensaje legible, incluidas las claves requeridas faltantes y las propiedades adicionales inesperadas.
- ¿El generador infiere formatos de cadena como email o date?
- Sí, cuando «Inferir formatos de cadena» está activado. Comprueba los valores de cadena de la muestra contra patrones de email, date, date-time, uri y uuid y añade la palabra clave format correspondiente; los valores que no coinciden con ninguno se quedan como cadenas simples.
- ¿Cómo infiere el esquema para los arreglos?
- Fusiona los esquemas de todos los elementos del arreglo en un solo esquema items. Los elementos de objeto mixtos se fusionan propiedad por propiedad, una clave que falte en algún elemento sale de required, y un arreglo vacío pasa a items:{}.
- ¿Se sube a algún lado mi muestra JSON o mi esquema?
- No. La generación y la validación, incluido Ajv, se ejecutan por completo en tu navegador, así que la muestra, el esquema y el documento que pegas se procesan localmente y permanecen en tu dispositivo.
Herramientas relacionadas
- Formateador de JSON — Embellece, minimiza y valida JSON con la ubicación de los errores.
- JSON a TypeScript — Genera interfaces de TypeScript a partir de una muestra JSON.
- Visor de JSON — Visor de texto y árbol plegable con expandir/contraer y rutas de nodos.
- JSON Diff — Compara dos documentos JSON con un diff estructural por rutas.
- JSON a código — Genera tipos de Go, Rust, Python, Java, Kotlin, C# y TypeScript a partir de JSON.
- Formateador de OpenAPI / Swagger — Formatea y valida especificaciones OpenAPI / Swagger (JSON o YAML) y cuenta rutas y operaciones.
Todas las herramientas de ArrayKit