Validador JSON Schema
Relacionado
Características
- Compatible con Draft-07: sigue completamente la especificación JSON Schema Draft-07 con soporte para tipos, campos obligatorios, propiedades, regex, formatos y enums
- Lógica de combinación avanzada: soporta allOf, anyOf, oneOf y not para gestionar estructuras complejas y escenarios de validación con múltiples restricciones
- Localización precisa de errores: muestra la ruta exacta del error, el tipo de fallo y la regla del esquema violada para depurar rápidamente conflictos de contrato de API
- Pruebas de contrato de API: verifica que las respuestas reales de tu API coincidan estrictamente con el esquema definido en la documentación, ideal para desarrollo frontend-backend
- Procesamiento 100% local: todo se ejecuta en tu navegador sin enviar datos a ningún servidor, garantizando privacidad y velocidad instantánea
Preguntas Frecuentes
¿Cómo valido una respuesta de API contra un JSON Schema?
Pega tu definición de JSON Schema en el campo izquierdo y el JSON de la respuesta de la API en el derecho. La herramienta comparará ambas estructuras automáticamente, validando tipos de datos, campos obligatorios, patrones regex y más. Es un paso esencial para las pruebas de contrato de API y garantizar la consistencia entre frontend y backend.
¿Qué reglas de validación JSON Schema soporta?
La herramienta es compatible con el estándar JSON Schema Draft-07. Soporta verificación de tipos (type), campos obligatorios (required), propiedades (properties), patrones regex (pattern), validación de formato (format), valores permitidos (enum) y lógica de combinación avanzada (allOf, anyOf, oneOf, not).
¿Cómo localizo los errores cuando la validación falla?
Cuando el JSON no cumple con el esquema, la herramienta genera un informe detallado que indica la ruta exacta del error (por ejemplo, `data.users[0].email`), el tipo de error (incompatibilidad de tipos, campo obligatorio faltante, etc.) y la regla del esquema que se violó. Esto te permite localizar y corregir problemas rápidamente.
¿Puedo usar JSON Schema para validar datos antes de importarlos?
Sí. Antes de cargar datos en una base de datos o procesarlos en un pipeline ETL, puedes verificar que cumplen con las especificaciones de tu esquema. Esto te permite detectar datos sucios o anomalías antes de que entren en tu sistema, garantizando la calidad de los datos.
¿Mis datos se envían a algún servidor durante la validación?
No. Todo el proceso de validación se ejecuta de forma local en tu navegador. Ningún dato se transmite a servidores externos, lo que garantiza la total privacidad de tu información, especialmente cuando trabajas con estructuras de API empresariales o datos sensibles.
Hoja de Referencia de Palabras Clave de JSON Schema
La siguiente tabla lista las palabras clave de validación más utilizadas en la especificación JSON Schema, organizadas por categoría para referencia rápida.
| Palabra Clave | Descripción |
|---|---|
| Tipos Básicos | |
type | Especifica el tipo de datos: string, number, integer, boolean, array, object, null. Soporta un tipo único o un array de tipos. |
| Validación de Objetos | |
properties | Define sub-esquemas para las propiedades del objeto. |
required | Array de strings que especifica qué propiedades son obligatorias. |
additionalProperties | Controla si se permiten propiedades extra no definidas en properties; puede ser false o un esquema. |
propertyNames | Esquema que deben cumplir los nombres de las propiedades (comúnmente usa regex pattern). |
minProperties | Número mínimo de propiedades que debe contener un objeto. |
maxProperties | Número máximo de propiedades que puede contener un objeto. |
| Enums y Constantes | |
enum | Array de valores permitidos; los datos deben ser exactamente un valor del array. |
const | Valor constante; los datos deben ser estrictamente iguales a este valor. |
| Restricciones Numéricas | |
minimum | Valor numérico mínimo (inclusivo). |
maximum | Valor numérico máximo (inclusivo). |
exclusiveMinimum | El valor debe ser estrictamente mayor que (exclusivo). |
exclusiveMaximum | El valor debe ser estrictamente menor que (exclusivo). |
multipleOf | El valor debe ser un múltiplo del número especificado. |
| Restricciones de Strings | |
minLength | Longitud mínima del string. |
maxLength | Longitud máxima del string. |
pattern | Expresión regular; el string debe coincidir con este patrón. |
format | Validación de formato semántico: email, uri, date-time, uuid, ipv4, ipv6, hostname, etc. |
| Restricciones de Arrays | |
items | Esquema para los elementos del array (un solo esquema se aplica a todos los elementos). |
minItems | Número mínimo de elementos en el array. |
maxItems | Número máximo de elementos en el array. |
uniqueItems | Si los elementos del array deben ser únicos. |
contains | Al menos un elemento del array debe coincidir con este esquema. |
| Lógica Combinatoria | |
allOf | Los datos deben coincidir con todos los sub-esquemas (Y lógico). |
anyOf | Los datos deben coincidir con al menos un sub-esquema (O lógico). |
oneOf | Los datos deben coincidir con exactamente un sub-esquema (XOR). |
not | Los datos NO deben coincidir con este esquema (NO lógico). |
| Validación Condicional | |
if | Esquema condicional; si los datos coinciden con if, deben cumplir then; de lo contrario deben cumplir else. |
then | Esquema a cumplir cuando la condición if se cumple. |
else | Esquema a cumplir cuando la condición if no se cumple. |
| Referencias y Reutilización | |
$ref | Referencia a otras definiciones de esquema; soporta referencias locales (#/$defs/xxx) y referencias remotas. |
$defs | Define sub-esquemas reutilizables (Draft 2019-09+; versiones antiguas usan definitions). |
definitions | Palabra clave para sub-esquemas reutilizables en Draft 4-7. |
| Metadatos | |
title | Título del esquema (anotación, no se valida). |
description | Descripción del esquema (anotación, no se valida). |
default | Valor por defecto (anotación, no se valida). |
examples | Array de valores de ejemplo (anotación, no se valida). |
$schema | Especifica la versión de la especificación JSON Schema en uso. |
| Dependencias | |
dependentRequired | Dependencia de propiedades: cuando una propiedad existe, otras propiedades también deben existir (Draft 2019-09+). |
dependencies | Palabra clave de dependencia en Draft 4-7 que cubre tanto dependencias de propiedades como de esquemas. |
Comparación de Versiones de JSON Schema
JSON Schema ha evolucionado a través de múltiples versiones Draft. Draft 7 es actualmente la versión más utilizada; Draft 2020-12 es la última versión estable.
| Característica | Draft 4 | Draft 6 | Draft 7 | 2019-09 | 2020-12 |
|---|---|---|---|---|---|
| validación de tipos | ✓ | ✓ | ✓ | ✓ | ✓ |
| campos obligatorios | ✓ | ✓ | ✓ | ✓ | ✓ |
| enum/const | ✓ enum | ✓ | ✓ | ✓ | ✓ |
| minimum/maximum | ✓ | ✓ | ✓ | ✓ | ✓ |
| exclusiveMinimum/Maximum | booleano | número | número | número | número |
| multipleOf | ✓ | ✓ | ✓ | ✓ | ✓ |
| minLength/maxLength | ✓ | ✓ | ✓ | ✓ | ✓ |
| regex pattern | ✓ | ✓ | ✓ | ✓ | ✓ |
| validación de formatos | ✓ | ✓ | ✓ | solo anotación por defecto | solo anotación por defecto |
| array items | ✓ | ✓ | ✓ | ✓ | ✓ |
| contains | ✗ | ✓ | ✓ | ✓ | ✓ |
| minItems/maxItems | ✓ | ✓ | ✓ | ✓ | ✓ |
| uniqueItems | ✓ | ✓ | ✓ | ✓ | ✓ |
| additionalProperties | ✓ | ✓ | ✓ | ✓ | ✓ |
| propertyNames | ✗ | ✓ | ✓ | ✓ | ✓ |
| allOf/anyOf/oneOf/not | ✓ | ✓ | ✓ | ✓ | ✓ |
| if/then/else | ✗ | ✗ | ✓ | ✓ | ✓ |
| referencias $ref | ✓ | ✓ | ✓ | ✓ | ✓ |
| reutilización $defs | definitions | definitions | definitions | $defs | $defs |
| dependentRequired | ✗ | ✗ | ✗ | ✓ | ✓ |
| tuplas prefixItems | forma de array | forma de array | forma de array | forma de array | prefixItems |
| unevaluatedProperties | ✗ | ✗ | ✗ | ✓ | ✓ |
| $dynamicRef/$anchor | ✗ | ✗ | ✗ | ✓ $recursiveRef | ✓ dynamicRef |
- Compresión JSON
- CSV a JSON
- JSON a CSV
- JSON Diff
- JSON Escape / Unescape
- JSON Flatten
- Formateo JSON
- Generador de JSON
- Consulta JSONPath
- Fusionar JSON
- Reparar JSON
- Validador JSON Schema
- Ordenar JSON
- JSON Stringify
- JSON a HTML
- JSON a Java
- JSON to Markdown
- JSON a SQL
- JSON a TOML
- JSON a TypeScript
- XML a JSON
- JSON a XML
- YAML a JSON
- JSON a YAML
- JSON a Python
- JSON a Go
- JSON a Rust
- JSON a Swift
- JSON a C#
- JSON a C++
- JSON a PHP