Valide JSON con un JSON Schema (2020-12, 2019-09, draft 7), con cada error localizado
Se ejecuta en su navegador. Nada de lo que escribe se envía a ningún sitio. Comprobado el 16 de octubre de 2026.Un validador de JSON Schema comprueba que un documento JSON tenga la forma que describe un esquema: los tipos correctos, las propiedades obligatorias, valores dentro de los límites y ninguna clave inesperada. Este admite los drafts 2020-12, 2019-09, 7, 6 y 4, supera 1.652 casos de la suite de pruebas oficial y señala cada valor erróneo por su ruta y su línea.
Esta página se ha traducido automáticamente del original en inglés. Ninguna persona ha revisado todavía la traducción, así que la versión en inglés es la que debe consultar. Leer el original en inglés
Pegue el esquema en el panel Esquema y el JSON en el panel Datos, o haga clic en Probar un ejemplo.
Lea el resultado: Válido, o una lista de errores, cada uno con la ruta del valor y lo que está mal.
Haga clic en un error para colocar el cursor en ese valor del panel Datos, corríjalo, y la lista se actualiza mientras escribe.
Active Comprobar formatos para probar también email, fecha-hora, URI y los demás formatos habituales.
JSON Schema es la forma estándar de describir cómo es un JSON válido; lo usan OpenAPI, los generadores de formularios, los archivos de configuración y las canalizaciones de datos. Pegue un esquema y un documento, y el resultado se actualiza mientras escribe.
Qué se comprueba. Cada aserción del vocabulario de validación: type, enum, const, límites numéricos y multipleOf, longitud de cadena y pattern, longitud de array, uniqueItems, contains, tamaño de objeto, required, dependentRequired y los aplicadores properties, patternProperties, additionalProperties, items, prefixItems, allOf, anyOf, oneOf, not e if/then/else. Las referencias con $ref siguen punteros JSON, $defs, definitions, $id y $anchor dentro del esquema.
Qué draft. El draft se toma de $schema, o es 2020-12 si el esquema no indica ninguno, y usted puede cambiarlo. Las diferencias importan: en draft 7, items con un array comprueba cada posición y las palabras clave junto a $ref se ignoran; en 2020-12 las posiciones pasan a prefixItems y $ref se combina con sus hermanas.
Formatos. Desde 2019-09, format es una anotación, no una comprobación. Active Comprobar formatos para probar de todos modos email, date-time, date, time, uri, uuid, ipv4, ipv6 y hostname, como la mayoría espera.
Errores con los que puede actuar. Cada error da la ruta del valor que falla, como /tags/1, su línea en el panel Datos y la regla que incumple. Haga clic en él y el cursor se sitúa en ese valor.
Lo que no hace. unevaluatedProperties, unevaluatedItems y $dynamicRef no se evalúan, y un $ref a un esquema en otro servidor no se descarga. La página lo indica siempre que un esquema usa alguno de ellos, en lugar de dar los datos por buenos en silencio.
Generar un esquema. Pegue en su lugar una muestra y se escribe a partir de ella un esquema inicial, listo para ajustar.
El validador se prueba con la JSON-Schema-Test-Suite oficial. Todo se ejecuta en su navegador; nada de lo que pega se envía a ninguna parte.
Pegue el esquema en el panel Esquema y el documento JSON en el panel Datos. El resultado aparece al instante: Válido, o una lista de errores, cada uno con la ruta del valor incorrecto, como /items/2/price, y la regla incumplida, como minimum 0. Corrija los datos o el esquema y la lista se actualiza mientras escribe.
Use 2020-12 para esquemas nuevos: es la especificación vigente y la que usa OpenAPI 3.1. Draft 7 sigue siendo habitual en herramientas y bibliotecas antiguas. Declare la versión en $schema, por ejemplo https://json-schema.org/draft/2020-12/schema, porque las tuplas de arrays, $ref y dependencies se comportan de forma distinta entre versiones.
Con additionalProperties en false, cualquier propiedad que no figure en properties ni coincida con patternProperties es un error. Así, una errata como emial en lugar de email se detecta en vez de ignorarse. Las propiedades añadidas mediante allOf en otro subesquema no se ven, lo que suele sorprender; enumérelas en el mismo esquema.
Desde 2019-09 la palabra clave format es por defecto solo una anotación, así que los validadores no están obligados a comprobarla. Active aquí Comprobar formatos para probar email, date-time, date, time, uri, uuid, ipv4, ipv6 y hostname. En código, bibliotecas como Ajv también necesitan que la comprobación de formatos se active por separado.
required nombra las propiedades exactas que deben estar presentes, como id y email, mientras que minProperties solo las cuenta: minProperties 2 acepta dos claves cualesquiera. Una propiedad que figura en properties pero no en required es opcional y, si está presente, debe cumplir igualmente su propio esquema.
Sí. Cambie a Generar esquema y pegue una muestra en el panel Datos: se escribe un esquema 2020-12 con cada propiedad tipada y las claves presentes en todos los registros marcadas como required. Una muestra no puede mostrar límites, formatos ni valores permitidos, así que añada minimum, format y enum a mano antes de confiar en él.
Los tipos y las normas cambian; consulte la fuente antes de fiarse de una cifra.
¿Sigue sin resolverlo? Pregunte sobre Validador de JSON Schema y cualquiera que lo sepa puede responder. No se necesita cuenta.