Validador de JSON Schema
Valida un documento JSON con un JSON Schema en tu navegador. Cada error aparece con su ruta en el documento, su palabra clave y su ruta en el schema.
| # | Ruta en el documento | Palabra clave | Mensaje | Ruta en el schema |
|---|
Cómo validar un JSON con un schema
- Pega tu schema en JSON Schema y tus datos en Documento JSON, o elige un caso preparado en Ejemplo.
- Deja Draft en Automático ($schema) para usar la versión que indica el
$schemadel schema, o fuerza el draft 4, 7, 2019-09 o 2020-12. - La validación se ejecuta mientras escribes; Validar la vuelve a lanzar. Formatear ambos reindenta los dos textos.
- Lee el resultado: una línea verde si el documento es válido o, si no, una tabla de errores.
Los mensajes de error del validador están en inglés; las columnas de la tabla y los avisos de la herramienta sí aparecen en español.
Cómo leer la tabla de errores
Cada fila es una regla que no se cumple:
- Ruta en el documento es un JSON Pointer al valor que falla.
/roles/1es el segundo elemento deroles;(raíz)es el documento completo. - Palabra clave es la regla del schema que falla:
type,required,minimum,pattern,format,additionalProperties, etc. - Mensaje explica el fallo, por ejemplo
0 is less than 1.(0 es menor que 1). - Ruta en el schema señala la palabra clave dentro del schema, como
/properties/id/minimum, para que encuentres la regla rápidamente.
La validación no se detiene en el primer problema: se enumeran todos los errores. Cuando falla una propiedad de un objeto, el validador indica un resumen («Property “id” does not match schema») seguido del motivo concreto. Mostrar solo los errores más específicos oculta esos resúmenes; desmárcalo para ver la cadena completa. Los errores bajo anyOf y oneOf se mantienen siempre junto a los errores específicos de cada rama, porque solo tienen sentido juntos.
Qué se admite
- Drafts: 4, 6 (validado con las reglas del draft 7), 7, 2019-09 y 2020-12, incluidos
$defs/definitions,$reflocales,if/then/else,dependentRequired,dependentSchemas,prefixItems,unevaluatedPropertiesyunevaluatedItems. - Formatos: se comprueban
date,time,date-time,duration,email,hostname,ipv4,ipv6,uri,uri-reference,uri-template,uuid,regex,json-pointeryrelative-json-pointer. Los formatos desconocidos se ignoran, como permite la especificación. - Referencias:
$refpuede apuntar a cualquier parte del schema, incluido un$idque este declare. Los schemas remotos nunca se descargan; una referencia a otra URL se indica como no resuelta.
Esta herramienta valida documentos según tu schema. No comprueba que el propio schema siga el metaschema, pero avisa de los nombres de type desconocidos, como "strin" o "int", una errata frecuente que los validadores suelen ignorar sin decir nada.
Los ejemplos
- Perfil de usuario (2020-12):
required, longitudes de cadena,format: email, unenumdentro deitems,uniqueItemsyadditionalProperties: false. - Lista de productos con $ref (draft-07): un array cuyos elementos hacen referencia a
#/definitions/product, con unpatternpara el SKU y un precio conexclusiveMinimum. - Configuración con if/then (2019-09): un certificado obligatorio solo en modo HTTPS, un
oneOfentre correo electrónico y URI, y límites numéricos.
Cada ejemplo incluye un documento con errores deliberados, para que veas cómo se presentan los errores.
Preguntas frecuentes
¿Se suben mis datos?
No. El schema y el documento se validan en tu navegador; no se envía nada a ningún servidor.
¿Por qué el $ref de mi schema aparece como «no resuelto»?
El validador solo conoce el schema que has pegado. No puede seguir un $ref a otro archivo o URL; copia las definiciones referenciadas en $defs y apunta a #/$defs/….
¿Qué draft debo usar?
El que use tu proyecto, y decláralo con $schema. Para schemas nuevos, 2020-12 es la versión actual; OpenAPI 3.1 también la usa.
¿Por qué integer rechaza 2.0?
No lo rechaza: JSON Schema considera 2.0 un entero porque su valor no tiene decimales. 2.5 no cumple "type": "integer".
¿Funciona sin conexión?
Sí. Una vez cargada la página y hecha una primera validación (que carga el validador), no hace falta conexión.
Herramientas relacionadas
- Formateador y validador JSON Formateador y validador JSON gratuito que embellece, minifica y comprueba JSON en tu navegador, con los errores de sintaxis indicados por línea y columna.
- Probador de JSONPath Prueba expresiones JSONPath sobre tu propio JSON en el navegador. Filtros, slices, descenso recursivo, rutas y JSON Pointers, con ejemplos listos para usar.
- Convertidor de JSON a YAML Convierte JSON a YAML y YAML a JSON en tu navegador, con soporte de anclas, claves de fusión y archivos con varios documentos. No se sube nada.