Herramienta gratis

Generador de JSON Schema

Convierte ejemplos reales en un JSON Schema preciso y pruébalo con otros documentos sin salir de la página.

JSON de ejemplo
JSON Schema
{
  "$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

  • /idtipo incorrecto, se esperaba integer
  • /emailno cumple el formato email
  • /createdAtno cumple el formato date-time
  • /tags/0tipo incorrecto, se esperaba string
  • /profilefalta 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)

Full-Stack Developer · Guadalajara, España

Desarrollo aplicaciones web, herramientas digitales y proyectos completos — desde el diseño hasta el despliegue.

Contáctame

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. 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. 2

    Configura el schema

    Elige draft, criterio de obligatorios, formatos, enum, rangos y si se permiten propiedades extra.

  3. 3

    Revisa y exporta

    Copia el schema o descárgalo como schema.json.

  4. 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 →