Validador de Esquemas JSON

Valide JSON contra un JSON Schema (Draft 2020-12) y obtenga errores con la ruta completa de la instancia

JSON

Esquema

Validador de Esquemas JSON

Valide JSON contra un JSON Schema (Draft 2020-12) y obtenga errores con la ruta completa de la instancia

Características

  • Valida instancias JSON contra cualquier JSON Schema usando Ajv (la implementación de referencia de facto), con soporte completo para Draft-07, 2019-09 y 2020-12
  • El informe de errores enumera cada fallo como `ruta: mensaje` — las rutas de instancia siguen la notación JSON Pointer RFC 6901 para que pueda bajar al nodo culpable en datos anidados
  • Todos los errores se informan en una sola pasada (allErrors: true) en lugar de detenerse en el primero — vea todos los problemas a la vez
  • Compilación en modo estricto desactivada para que los esquemas no estándar o extendidos sigan compilando; allowUnionTypes activado para esquemas con tipos de unión
  • El botón Cargar ejemplo rellena ambos paneles con un ejemplo pequeño (objeto con id y name requeridos más array tags) para ver el validador en marcha sin escribir
  • El botón Copiar errores emite la lista completa como bloque `ruta: mensaje` separado por saltos de línea — pegue directamente en un ticket o fixture de pruebas
  • Puramente del lado cliente: Ajv corre en su navegador, ningún JSON o esquema se sube a un servidor, y la herramienta funciona sin conexión una vez cargada la página
  • El informe de error de análisis separado distingue JSON malformado de violaciones de esquema — siempre sabe si arreglar la sintaxis o el contrato

Cómo usar

  1. Pegue la instancia JSON a validar en el área de texto izquierda.
  2. Pegue su JSON Schema en el área derecha — use Draft 2020-12, 2019-09 o Draft-07; Ajv selecciona automáticamente según $schema.
  3. Pulse Validar. Si ambas entradas se analizan limpiamente, Ajv compila el esquema y ejecuta la validación.
  4. Lea el resultado: una bandera verde Válido indica que la instancia coincide; si no, cada fallo muestra la ruta JSON Pointer y el mensaje legible de Ajv.
  5. Pulse Copiar errores para obtener el informe completo como líneas `ruta: mensaje` para compartir o guardar en un fichero de fixture.
  6. Use Cargar ejemplo para poblar ambos paneles con un ejemplo funcional si quiere verificar el comportamiento antes de pegar sus datos.

Consejos y buenas prácticas

  • Incluya siempre un campo $schema en su esquema para que Ajv elija la semántica de draft correcta.
  • Prefiera additionalProperties: false durante el desarrollo para detectar erratas en nombres de campos pronto.
  • Use $defs (o definitions en Draft-07) para compartir subesquemas comunes — los refs hacen los esquemas DRY y revisables.
  • Cuando la validación pasa en local pero falla en CI, compruebe que se usan la misma versión de Ajv y los mismos drafts en ambos entornos.
  • Guarde la salida de Copiar errores en sus fixtures de prueba para que las regresiones aparezcan como diffs de violación de esquema.

Preguntas frecuentes

¿Qué drafts de JSON Schema se soportan?

Draft-07, Draft 2019-09 y Draft 2020-12. Ajv selecciona el meta-esquema automáticamente según el campo $schema; si se omite, vuelve a la semántica Draft-07. La spec más reciente 2020-12 sustituye definitions por $defs e items por prefixItems/items — se aceptan tanto las palabras clave antiguas como las nuevas.

¿Qué significa la ruta en un error?

Ajv reporta instancePath en notación JSON Pointer RFC 6901: '/users/0/email' significa «la propiedad email del primer usuario». La raíz es la cadena vacía (renderizada como $ en la UI). Esto facilita navegar de vuelta al campo fallido en datos anidados.

¿Por qué mi esquema no compila?

Causas comunes: JSON malformado (comas extra, comillas simples, claves sin comillas); un $ref apuntando a una definición inexistente; o una palabra clave en modo estricto que Ajv no reconoce. El panel de error de análisis del esquema muestra el error exacto de compilación de Ajv; el modo estricto ya está desactivado aquí, así que la mayoría de esquemas no estándar siguen compilando.

¿Por qué obtengo un error «unknown keyword» o «unknown format»?

Las palabras clave estándar de JSON Schema (type, required, properties, etc.) están integradas. Los nombres de formato personalizados como «date-time», «uri», «email» no se validan por defecto — Ajv los trata como anotaciones a menos que cargue ajv-formats. Si necesita comprobar formatos, ejecute la validación en un paso de build con ajv-formats instalado.

¿El validador se detiene en el primer error?

No. Ajv está configurado con allErrors: true, así que cada fallo se reporta. Para errores profundamente anidados puede ser verboso; si solo quiere el primero, pase JSON+esquema a su propia llamada ajv() con allErrors: false en su build.

¿Funciona para documentos JSON muy grandes?

Sí, pero el patrón correcto en código es compile-once-validate-many. Esta herramienta recompila en cada clic de Validar, lo cual está bien para chequeos en desarrollo pero no para rutas calientes en producción. La build de Ajv usada aquí es el bundle ESM estándar; espere tiempos de compilación de milisegundos para esquemas típicos.

¿Mi JSON y mi esquema se envían a algún sitio?

No. Ambos cuadros de texto permanecen en su navegador; Ajv corre localmente; no registramos, almacenamos ni telemetrizamos el contenido. Puede verificarlo en la pestaña Red de DevTools — no hay llamada de red al pulsar Validar.

¿Cuál es la diferencia con la pestaña de esquema en JSON Formatter?

La pestaña de esquema de JSON Formatter usa el mismo SchemaService respaldado por Ajv para chequeos puntuales junto al formateo, JSONPath y vista de árbol. Este validador independiente le da dos grandes paneles para pegar, un cargador de ejemplo, exportación con copiar errores y una URL dedicada para marcar o compartir — mejor cuando la validación es su única tarea.