Saltar al contenido
ToolMug

Generador de JSON Schema a partir de JSON

Pega un ejemplo de JSON y obtén un JSON Schema que lo describe — tipos, objetos anidados, elementos de arrays y qué claves son obligatorias. Úsalo como punto de partida para validación, formularios o documentación de API.

Funciona en tu navegador: nada de lo que introduces se sube

Cómo se usa

  1. Pega un ejemplo de JSON o haz clic en «Cargar ejemplo».
  2. Indica el título del esquema raíz en «Nombre del tipo raíz».
  3. Copia o descarga el esquema y añade restricciones como formatos, patrones y rangos.

Opciones explicadas

Nombre del tipo raíz
Se usa como title del esquema.

Ejemplos

{"id": 1, "email": null} se convierte en un esquema con "id": {"type": "integer"}, "email": {"type": "null"} y las dos claves en required.

Ejemplo

Dos registros de usuario, en los que solo el primero tiene correo electrónico y manager a veces es null:

[
  { "id": 1, "name": "Ada", "email": "ada@example.com", "tags": ["admin"], "manager": null },
  { "id": 2, "name": "Grace", "tags": [], "manager": { "id": 1 } }
]

Con el nombre del tipo raíz fijado en User, el esquema generado es:

{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "title": "User",
  "type": "array",
  "items": {
    "type": "object",
    "properties": {
      "id": { "type": "integer" },
      "name": { "type": "string" },
      "email": { "type": "string" },
      "tags": { "type": "array", "items": { "type": "string" } },
      "manager": {
        "anyOf": [
          { "type": "null" },
          { "type": "object", "properties": { "id": { "type": "integer" } }, "required": ["id"] }
        ]
      }
    },
    "required": ["id", "name", "tags", "manager"]
  }
}

email queda fuera de required porque el segundo registro no lo tiene, y manager acepta null o un objeto porque ambos aparecen en la muestra. Cuanto más variados sean tus datos de ejemplo, más preciso será el esquema: pega varios registros en lugar de uno.

Usos habituales

Validar la entrada de una API. Carga el esquema en un validador como Ajv (JavaScript) o jsonschema (Python) y rechaza las peticiones que no coincidan.

Documentar una API. Pega las propiedades en una sección components.schemas de OpenAPI como punto de partida.

Autocompletado en el editor. VS Code y los IDE de JetBrains pueden usar un JSON Schema para sugerir claves y señalar errores en los archivos de configuración JSON.

Preguntas frecuentes

¿Qué claves se marcan como obligatorias?

Las que están presentes en todos los objetos del ejemplo. Cuando un array contiene objetos con claves distintas, las claves que faltan en algunos elementos quedan fuera de required.

¿Puedo usarlo con OpenAPI?

OpenAPI 3.1 usa JSON Schema 2020-12, así que el esquema generado encaja en components/schemas. Para OpenAPI 3.0, sustituye los arrays de tipos como ["string", "null"] por nullable true.

¿Detecta formatos como email o date-time?

No. Solo deduce los tipos. Añade a mano format, pattern, minimum y palabras clave similares donde haga falta.

¿Se sube mi JSON?

No. Los tipos se generan en tu navegador, así que las respuestas de API con datos reales no salen de tu dispositivo.

Privacidad

Esta herramienta funciona por completo en tu navegador. Tus archivos y textos se procesan en tu dispositivo y nunca se suben a nuestros servidores.

Herramientas relacionadas