~/tools / JSON Schema Validator
JSON Schema Validator — Comprueba un JSON con un JSON Schema
Comprueba datos JSON con un JSON Schema y ve cada problema con su ruta y la regla que falló. Cubre las palabras clave principales de Draft 2020-12. Sirve para revisar la salida estructurada de un modelo de IA. Nada sale de tu navegador.
Sigue JSON Schema Draft 2020-12 en las palabras clave que admite. Lee $ref solo dentro del mismo esquema.
Todo se ejecuta en tu navegador. El esquema y los datos no se suben.
Un JSON Schema describe cómo es un JSON válido: sus tipos, las propiedades obligatorias, los valores permitidos y los rangos. Esta herramienta comprueba un JSON con un esquema y enumera cada problema con su ubicación en los datos y la palabra clave del esquema que falló. Las API de IA pueden restringir la respuesta de un modelo a un esquema, pero la respuesta aún puede tener valores erróneos, ser un rechazo o quedar cortada, así que conviene comprobarla tú mismo. Las palabras clave que la herramienta no comprueba, como format, se indican cuando tu esquema las usa, de modo que un resultado correcto nunca es más débil de lo que parece.
Casos de uso
- Comprobar que la salida estructurada de un modelo de IA coincide con el esquema que le diste
- Probar un esquema con algunas muestras válidas y no válidas antes de usarlo en una API
- Encontrar qué propiedad de un documento JSON grande incumple las reglas
Cómo usarlo
- Pega el esquema a la izquierda y los datos JSON a la derecha, o carga el ejemplo.
- Lee el resultado: una validación correcta, o una lista de problemas con la ruta en los datos y la regla que falló.
- Revisa el aviso sobre las palabras clave que no se verificaron, si aparece.
Qué comprueba un esquema y qué no
- properties comprueba solo las propiedades que están presentes. Una propiedad es obligatoria solo si su nombre figura en required, así que una propiedad que no figura puede faltar.
- additionalProperties se aplica a los nombres que no coinciden ni con properties ni con patternProperties. Si se omite, se permiten propiedades adicionales.
- integer coincide con cualquier número cuya parte fraccionaria sea cero.
- pattern es una expresión regular ECMA-262 y no está anclada: el patrón b coincide con la cadena abc. Añade ^ y $ cuando deba coincidir toda la cadena.
- minLength y maxLength cuentan los caracteres tal como los define el RFC 8259, así que un emoji cuenta como uno.
- format es una anotación por defecto, y comprobarlo es opcional. Esta herramienta no lo comprueba y lo indica cuando un esquema lo usa.
- Las palabras clave desconocidas se tratan como anotaciones, así que una palabra clave mal escrita como requierd se ignora y no hace fallar el esquema.
Arrays: 2020-12 y borradores anteriores
| Draft | Esquemas para los primeros elementos | Esquema para el resto |
|---|---|---|
| 2020-12 | prefixItems | items |
| draft-07 y anteriores | items como array | additionalItems |
Esta herramienta lee ambas formas. En 2020-12, items: false ocupa el lugar de additionalItems: false.
Qué aceptan las funciones de salida estructurada de la IA
Cada proveedor acepta solo un subconjunto de JSON Schema, y los tres lo documentan de manera distinta.
| Proveedor | Qué dice la documentación |
|---|---|
| OpenAI | La raíz debe ser un objeto. Todas las propiedades deben figurar en required (un valor opcional se escribe como un tipo que también admite null), y todo objeto necesita additionalProperties: false. allOf, not, dependentRequired, dependentSchemas e if/then/else no están admitidos. |
| Anthropic | additionalProperties debe ser false. No se admiten esquemas recursivos, minimum, maximum y multipleOf, minLength y maxLength, ni un minItems de array distinto de 0 o 1. Una función no admitida devuelve un error 400. |
| Google Gemini | Solo se admite un subconjunto de JSON Schema. minLength, maxLength, minProperties, maxProperties, uniqueItems, contains, minContains y maxContains se eliminan y se ignoran en lugar de producir un error. |
Un esquema que pasa este validador aún puede ser rechazado, o aplicado solo en parte, por la función de un proveedor. Consulta la documentación del proveedor y valida tú mismo la respuesta.
Valida tú mismo la respuesta
- Google dice que la salida puede cumplir el esquema y aun así ser incorrecta en su significado, y recomienda validar los valores en tu aplicación.
- Anthropic señala que un valor de enum o const puede volver diferente solo en las mayúsculas y minúsculas, sin ningún error.
- OpenAI dice que un rechazo no sigue necesariamente el esquema, y que una respuesta cortada por el límite máximo de tokens está incompleta.
- Anthropic dice que una respuesta cortada por max_tokens puede no cumplir el esquema. Comprueba por qué se detuvo el modelo antes de analizarla.
Fuentes (comprobadas el 2026-10-23): JSON Schema 2020-12: Core / JSON Schema 2020-12: Validation / JSON Schema 2020-12: Release notes / OpenAI: Structured Outputs / Anthropic: Structured outputs / Google AI for Developers: Structured output
FAQ
¿Qué versión de JSON Schema sigue?
Draft 2020-12. También lee las formas antiguas de arrays de draft-07, donde items puede ser un array y additionalItems cubre el resto. Acepta $ref a definiciones dentro del mismo esquema ($defs o definitions) y no descarga esquemas externos.
¿Qué palabras clave comprueba?
type, enum, const, los límites de números y de cadenas, pattern, las palabras clave de arrays (items, prefixItems, minItems, maxItems, uniqueItems, contains), las de objetos (properties, patternProperties, additionalProperties, required, propertyNames, dependentRequired y otras), allOf, anyOf, oneOf, not y if/then/else.
¿Qué no comprueba?
No comprueba format, unevaluatedProperties, unevaluatedItems, $dynamicRef ni contentMediaType. JSON Schema trata format como una anotación por defecto, y comprobarlo es opcional. Cuando tu esquema usa alguna de estas, la herramienta lo indica.
¿Por qué una palabra clave mal escrita no produce un error?
JSON Schema trata las palabras clave desconocidas como anotaciones, así que una errata como requierd se ignora y el esquema sigue pasando. La herramienta avisa cuando una palabra clave que conoce tiene un valor incorrecto, por ejemplo un type que no existe, pero no puede saber que querías escribir otra palabra.
¿Un esquema que pasa aquí funcionará con las salidas estructuradas de un proveedor de IA?
No necesariamente. Cada proveedor admite solo un subconjunto de JSON Schema. OpenAI exige que todas las propiedades sean required y que additionalProperties sea false, Anthropic no admite límites de longitud de números ni de cadenas, y Gemini ignora varias palabras clave. Consulta las notas sobre los proveedores debajo de la herramienta.
¿Mis datos se envían a un servidor?
No. Tanto el esquema como los datos se comprueban en tu navegador.