Generador de JSON Schema
Pega JSON a la izquierda: el esquema aparece a la derecha mientras escribes.
JSON Schema
Cómo se usa
- Pega un documento JSON de ejemplo a la izquierda: un objeto, un array o un valor suelto. El esquema se genera en vivo, mientras escribes.
- Elige la versión del esquema (Draft 7 o 2020-12) y activa o desactiva la detección de formatos de cadena, los valores de ejemplo y si todas las propiedades son obligatorias.
- Copia o descarga el resultado como schema.json. No se sube nada: el documento completo se analiza en tu navegador.
Ejemplo
JSON de ejemplo
{ "id": 42, "name": "Ada Lovelace", "email": "ada@example.com", "active": true, "tags": ["admin", "editor"], "profile": { "score": 4.5, "verified": false } }
JSON Schema
{ "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "properties": { "id": { "type": "integer" }, "name": { "type": "string" }, "email": { "type": "string", "format": "email" }, "active": { "type": "boolean" }, "tags": { "type": "array", "items": { "type": "string" } }, "profile": { "type": "object", "properties": { "score": { "type": "number" }, "verified": { "type": "boolean" } }, "required": ["score", "verified"], "additionalProperties": false } }, "required": ["id", "name", "email", "active", "tags", "profile"], "additionalProperties": false }
Generado con las reglas por defecto: Draft 7, formatos activados y todas las propiedades obligatorias. La cadena de correo recibe una pista de formato; el entero se mantiene exacto y el perfil anidado se convierte en su propio esquema de objeto.
Reglas, límites y problemas conocidos
- Los tipos se infieren del ejemplo: object, array, string, integer, number, boolean y null. Los elementos de un array se combinan: los objetos de varios elementos unen sus claves, y una clave que falta en algunos elementos no se marca como obligatoria.
- Los tipos mezclados dentro de un mismo array se convierten en un anyOf; un array vacío produce type:array sin items (el tipo de elemento es desconocido a partir del ejemplo).
- Los formatos de cadena (email, UUID, URI, date, date-time) se deducen del valor: son pistas, no una validación de todos los valores posibles. Desactívalos con el interruptor.
- Las claves duplicadas conservan el último valor, como hace JSON.parse. Solo JSON estricto (RFC 8259): los comentarios, las comas finales y las comillas simples se rechazan con un mensaje de línea/columna.
- El esquema es JSON estándar, así que sus palabras clave y su salida nunca cambian con el idioma de la página. Los valores de ejemplo se reconstruyen de forma nativa, por lo que un entero extremo (por ejemplo 12345678901234567890) puede redondearse solo en el ejemplo.
- Límites: 1.000.000 de caracteres y 512 niveles de anidamiento. Si se supera cualquiera de los dos, se muestra un error, nunca un resultado truncado. La carga de archivos solo lee el archivo local: no se sube nada.
Herramientas relacionadas
Lo que suele hacer falta después, una vez que tienes un esquema.