Validador de JSON Schema

Pega un esquema y un documento, elige el borrador, y el validador verifica el documento contra cada palabra clave que usa tu esquema, type, required, enum, oneOf, $ref, if/then/else, format personalizado, informando cada violación con un puntero estilo JSONPath a la ubicación exacta del error.

Cómo validar contra un esquema

  1. 1

    Pega el esquema

    Borrador de JSON Schema 04, 07 o 2020-12. La palabra clave `$schema` (si está presente) selecciona automáticamente el borrador.

  2. 2

    Pega el documento

    El JSON que deseas validar. Debe ser un JSON válido primero, los errores de sintaxis se muestran antes de la evaluación del esquema.

  3. 3

    Validar

    Cada violación se informa con un puntero JSON (`/user/email`) y la palabra clave que falló (`format`, `required`, etc.).

  4. 4

    Corrige y revalida

    Edita cualquiera de los lados y el estado se actualiza en vivo.

Palabras clave soportadas

Núcleo: type, enum, const, multipleOf, maximum, minimum, exclusiveMaximum, exclusiveMinimum, maxLength, minLength, pattern, maxItems, minItems, uniqueItems, maxContains, minContains, maxProperties, minProperties, required, dependentRequired.

Composición: allOf, anyOf, oneOf, not.

Aplicadores: properties, patternProperties, additionalProperties, items, prefixItems, contains, propertyNames.

Condicionales: if, then, else, dependentSchemas.

Referencias: $ref, $defs, $id, $anchor.

Formatos (con validación cuando está habilitada): date-time, date, time, duration, email, hostname, ipv4, ipv6, uri, uuid, regex.

Salida de error

FAIL  /user/email        format            "not-an-email" no es un "email" válido
FAIL  /user/age          minimum           -3 es menor que el mínimo 0
FAIL  /orders/0/total    type              "42" no es del tipo "number"
FAIL  /                  required          falta la propiedad requerida "shippingAddress"

Cada error incluye la ruta y la palabra clave que falló, lo que facilita localizarlo en tu editor.

Diferencias de borrador que pueden causar problemas

Palabra clave Borrador 04 Borrador 07 Borrador 2020-12
id vs $id id $id $id
exclusiveMaximum como bool Número Número
Sintaxis de array items items items prefixItems
$ref permite hermanos No No

Establece el borrador correcto; validar un esquema de borrador-04 como 2020-12 malinterpretará id y algunas otras sutilezas.

Flujos de trabajo típicos

  • Pruebas de contrato de API: antes de un despliegue, ejecuta el esquema OpenAPI generado/actualizado contra respuestas de muestra reales.
  • Fortalecimiento de configuración: valida cada configuración YAML/JSON en CI contra un esquema antes de fusionar.
  • Ingesta de datos: rechaza cargas útiles que no coincidan con la forma esperada temprano, con un mensaje de error claro.

Errores comunes

  • Olvidar la aplicación de format. Por defecto, la mayoría de los validadores tratan los formatos desconocidos como solo anotaciones. Habilita la validación de formato estricto para rechazar realmente correos electrónicos y fechas incorrectas.
  • Uso excesivo de oneOf. Si dos ramas de oneOf se superponen, el documento fallará (debe coincidir exactamente con uno). Usa anyOf o patrones de discriminador.
  • Esquemas estrictos con additionalProperties: false. Agregar un nuevo campo opcional se convierte en un cambio disruptivo. Omitelo a menos que realmente desees un objeto cerrado.

Preguntas frecuentes

Sí. Los borradores 2020-12, 07 y 04 son todos soportados. El validador lee la palabra clave $schema de tu documento para elegir el correcto, o vuelve a la selección en la interfaz.

Los formatos estándar (email, date-time, uuid, ipv4, etc.) se validan cuando el formato estricto está habilitado. Los formatos personalizados declarados en tu esquema se tratan como solo anotaciones a menos que proporciones una regex con pattern.

Las referencias internas (#/$defs/foo) se resuelven automáticamente. Las referencias HTTP externas no se obtienen por defecto, por seguridad. Inline tus referencias externas primero, o usa una herramienta dedicada que soporte la resolución remota de $ref.

Sí. Tanto el esquema como el documento permanecen locales. El contenido pegado nunca se sube, seguro para contratos de API internos y datos sensibles.

Herramientas relacionadas

Herramienta disponible en otros idiomas