Validador JSON Schema

Valida datos JSON contra un JSON Schema Draft 7 con errores detallados. Herramienta gratuita en el navegador con botones de ejemplo y diagnósticos por ruta.

100% Privado y Seguro

Todo el procesamiento ocurre localmente en tu navegador. Tus archivos nunca salen de tu dispositivo.

Procesamiento Local Sin Subidas al Servidor Sin Registro
Ejemplos

Palabras clave

json schemavalidador jsonvalidación de esquemajson schema draft 7

¿Necesitas algo más?

Cómo usar

1

Pega tus datos JSON en el panel izquierdo del editor.

2

Pega un JSON Schema en el panel derecho, o usa uno de los botones de ejemplo para rellenar ambos paneles al instante.

3

Haz clic en Validar para verificar los datos contra el esquema.

4

Revisa los errores de validación — cada uno muestra la ruta, la palabra clave violada y un mensaje claro.

Características

Soporte de Palabras Clave Draft 7

Valida type, required, properties, items, enum, pattern, min/max, allOf/anyOf/oneOf, $ref y más.

Errores a Nivel de Ruta

Cada error identifica la ruta JSON exacta donde ocurrió la violación, facilitando la corrección de problemas.

Botones de Ejemplo Incluidos

Ejemplos de un clic para respuestas API, package.json y archivos de configuración rellenan los paneles de datos y esquema al instante.

Procesamiento Privado

Toda la validación se ejecuta localmente en tu navegador — tus datos y esquemas nunca se envían a ningún servidor.

¿Por qué elegir esta herramienta?

Privacidad Total para Datos Sensibles

Los esquemas JSON frecuentemente validan datos de producción con credenciales, datos de salud o financieros. Esta herramienta se ejecuta completamente en tu navegador, sin transmitir datos ni esquemas a servidores externos. No hay riesgo de exposición de datos, siendo segura para datos regulados por HIPAA, PCI o datos empresariales confidenciales.

Diagnósticos Precisos a Nivel de Ruta

Cuando falla la validación, cada error incluye la ruta JSON Pointer exacta, la palabra clave violada y un mensaje legible. Esta precisión elimina las conjeturas — sabes exactamente dónde está el problema y qué regla se violó, incluso en estructuras profundamente anidadas.

Soporte Completo de Draft 7

El validador soporta todas las palabras clave principales de JSON Schema Draft 7 incluyendo type, required, properties, additionalProperties, items, enum, const, pattern, format, minimum, maximum, minLength, maxLength, allOf, anyOf, oneOf, not y resolución local de $ref.

Sin Registro ni Límites de Uso

Comienza a validar inmediatamente — sin creación de cuentas, sin verificación de correo, sin límites diarios. Valida un solo objeto o ejecuta cientos de verificaciones por sesión sin restricciones. Se incluyen botones de ejemplo para explorar las capacidades sin escribir un esquema desde cero.

Validación JSON Schema: Guía Completa para Desarrolladores

JSON Schema es un vocabulario potente para anotar y validar documentos JSON. Define la estructura esperada, tipos de datos, restricciones y relaciones dentro de un payload JSON. Originalmente diseñado para describir contratos de API, JSON Schema ahora se usa en gestión de configuración, generación de formularios, documentación y control de calidad de datos.

¿Qué es JSON Schema?

Un JSON Schema es en sí mismo un documento JSON que describe la forma esperada de otro documento JSON. Especifica qué propiedades deben existir, qué tipos deben tener, qué valores son aceptables y cómo deben organizarse las estructuras anidadas. El esquema actúa como un contrato — cualquier documento JSON que se ajuste al esquema se considera válido.

Palabras Clave Principales

  • Validación de tipo: La palabra clave type restringe valores a tipos específicos (string, number, integer, boolean, null, array, object).
  • Restricciones de cadena: minLength, maxLength, pattern (regex) y format (email, date, uri, uuid, ipv4, ipv6).
  • Restricciones numéricas: minimum, maximum, exclusiveMinimum, exclusiveMaximum y multipleOf.
  • Restricciones de objeto: required lista propiedades obligatorias. properties define esquemas por propiedad. additionalProperties controla si se permiten claves no listadas.
  • Restricciones de arreglo: items valida cada elemento. minItems, maxItems y uniqueItems.
  • Composición: allOf, anyOf, oneOf y not combinan sub-esquemas para validación compleja.
  • Referencias: $ref con sintaxis JSON Pointer permite reutilizar esquemas referenciando definiciones en el mismo documento.

Casos de Uso Reales

  • Contratos de API: Define esquemas de solicitud y respuesta para APIs REST. Valida payloads en gateways de API.
  • Validación de configuración: Valida archivos de configuración de aplicaciones al inicio para detectar campos faltantes o tipos incorrectos.
  • Generación de formularios: Librerías como react-jsonschema-form generan formularios HTML directamente desde definiciones JSON Schema.
  • Calidad de datos: Valida salidas de pipelines de datos contra esquemas para detectar deriva de esquema y problemas de coerción de tipos.
  • Documentación: JSON Schema sirve como documentación de API legible por máquinas (OpenAPI/Swagger usa JSON Schema internamente).

Mejores Prácticas

Siempre establece additionalProperties: false cuando quieras validación estricta. Usa $ref para definir sub-esquemas reutilizables en un bloque definitions. Incluye campos description en tu esquema para contratos auto-documentados. Prueba esquemas contra datos válidos e inválidos para asegurar que las restricciones funcionen como se espera.

Evolución de Esquemas y Versionado

A medida que las API evolucionan, los esquemas deben actualizarse sin romper clientes existentes. Una práctica recomendada es mantener esquemas versionados y validar la compatibilidad hacia atrás antes de cada despliegue. Herramientas de comparación de esquemas pueden detectar cambios que rompen contratos, como la eliminación de propiedades requeridas o la restricción de tipos previamente aceptados, protegiendo así la estabilidad de las integraciones.

Validación Condicional con allOf, anyOf y oneOf

Las palabras clave de composición permiten construir esquemas sofisticados que reflejan la complejidad de los datos reales. allOf requiere que los datos cumplan todos los sub-esquemas simultáneamente, útil para herencia de esquemas y extensiones. anyOf valida si los datos cumplen al menos uno de los sub-esquemas, ideal para campos que aceptan múltiples formatos. oneOf exige que los datos cumplan exactamente uno de los sub-esquemas, perfecto para discriminadores de tipo en APIs polimórficas. Combinar estas palabras clave con not permite expresar restricciones negativas, rechazando datos que coincidan con patrones específicos no deseados.

JSON Schema en Arquitecturas de Microservicios

En arquitecturas de microservicios, donde múltiples servicios intercambian mensajes JSON a través de colas, buses de eventos y APIs REST, JSON Schema actúa como el contrato formal entre productor y consumidor. Cada servicio puede validar los mensajes entrantes contra el esquema esperado antes de procesarlos, rechazando datos malformados en el punto de entrada. Este patrón, conocido como validación en el borde, previene la propagación de errores de datos a través de la cadena de servicios y facilita la detección temprana de incompatibilidades entre versiones. Equipos de plataforma pueden centralizar los esquemas en un registro compartido, garantizando que todos los servicios utilicen las mismas definiciones de contrato y simplificando la gobernanza de datos en sistemas distribuidos.

Generación Automática de Esquemas

En la práctica, escribir esquemas JSON desde cero puede resultar tedioso para estructuras de datos complejas. Existen herramientas que generan un borrador de esquema a partir de un documento JSON de ejemplo, infiriendo tipos, propiedades requeridas y restricciones básicas. Este borrador sirve como punto de partida que el desarrollador refina añadiendo validaciones adicionales como patrones regex, rangos numéricos y composiciones con allOf/anyOf. Este enfoque de generación asistida acelera significativamente la adopción de JSON Schema en proyectos existentes que ya cuentan con datos de ejemplo representativos.

Errores de Validación Más Comunes y Cómo Corregirlos

La mayoría de los fallos de validación se repiten una y otra vez. Un error de tipo aparece cuando un valor parece correcto para una persona pero tiene el tipo JSON equivocado, por ejemplo "42" en lugar de 42 o "true" en lugar de true. Un error de campo requerido ausente indica que el payload no incluye una propiedad listada dentro de required. Una violación de enum significa que el dato contiene un valor fuera del conjunto permitido, como "archived" cuando el esquema solo acepta "draft" y "published".

Los errores más sutiles suelen venir de la composición y del modo estricto. additionalProperties: false rechaza cualquier clave no declarada, algo excelente para contratos de API pero que también hace aflorar rápidamente cambios ocultos en el productor. Los conflictos con anyOf y oneOf son otra fuente habitual de confusión: anyOf exige cumplir al menos una rama, mientras que oneOf exige cumplir exactamente una. Si el payload no cumple ninguna o cumple varias, la validación falla. Por último, los errores de $ref sin resolver suelen apuntar a un puntero JSON mal escrito o a una definición ausente. Una buena práctica es corregir primero los errores estructurales de nivel superior; muchos errores secundarios desaparecen cuando el objeto padre ya cumple el esquema esperado.

Tipo de errorCausa típicaCorrección práctica
Error de tipoSe envía una cadena en lugar de número o booleanoConvertir el dato antes de validar o aceptar ambos tipos si es intencional
Required ausenteFalta una propiedad obligatoriaAñadir el campo o sacarlo de required si de verdad es opcional
Violación de enumValor no contemplado en el conjunto permitidoNormalizar el dato de entrada o ampliar el enum deliberadamente
Conflicto con oneOfEl payload encaja en varias ramasAñadir un discriminador o endurecer las ramas
$ref sin resolverPuntero roto o definición inexistenteRevisar la ruta JSON Pointer y centralizar definiciones reutilizables

Preguntas Frecuentes

¿Qué es JSON Schema?

JSON Schema es un vocabulario estándar que define la estructura esperada, tipos y restricciones de un documento JSON. Está escrito en JSON y actúa como un contrato — cualquier documento JSON que se ajuste al esquema se considera válido. Se usa para validación de API, verificación de configuración, generación de formularios y documentación.

¿Mis datos están seguros al usar esta herramienta?

Sí. Todo el procesamiento de validación ocurre localmente en tu navegador usando JavaScript. Ni tus datos JSON ni tu esquema se transmiten a ningún servidor, se registran o se almacenan.

¿Qué draft de JSON Schema soporta esta herramienta?

La herramienta soporta las palabras clave principales de validación de JSON Schema Draft 7 incluyendo type, required, properties, additionalProperties, items, enum, const, pattern, format, minimum, maximum, minLength, maxLength, allOf, anyOf, oneOf, not y resolución local de $ref.

¿Cómo leo los errores de validación?

Cada error muestra tres piezas de información: la ruta identificando exactamente dónde en tu JSON está el problema, la palabra clave identificando qué regla del esquema fue violada, y un mensaje legible explicando el problema.

¿Para qué sirven los botones de ejemplo?

Los botones de ejemplo cargan pares de esquema y datos predefinidos para casos comunes: una respuesta API, un package.json y un archivo de configuración. Rellenan ambos paneles con un clic para que puedas probar el validador sin escribir un esquema desde cero.

¿Puedo validar objetos anidados?

Sí. El validador verifica recursivamente objetos y arreglos anidados en cada nivel de profundidad. Si una propiedad anidada viola su esquema, la ruta del error muestra la ruta completa para que puedas localizar el problema con precisión.

¿Qué significa additionalProperties: false?

Cuando additionalProperties se establece en false, cualquier propiedad en los datos JSON que no esté listada en el objeto properties causará un error de validación. Esto es útil para contratos de API estrictos.

¿Puedo usar $ref para referenciar definiciones?

Sí. La herramienta soporta referencias locales $ref usando sintaxis JSON Pointer. Define sub-esquemas reutilizables en un bloque definitions y referéncialos con $ref: '#/definitions/address'.

¿Qué formatos se soportan para validación de cadenas?

La palabra clave format soporta: email, date (YYYY-MM-DD), date-time (ISO 8601), uri, ipv4, ipv6 y uuid. Los formatos desconocidos se aceptan silenciosamente según la especificación JSON Schema.

¿Puedo validar documentos JSON grandes?

Sí. No hay límites de tamaño de archivo o complejidad. La validación se ejecuta completamente en tu navegador, por lo que el límite práctico depende de la memoria de tu dispositivo.

¿Qué diferencia hay entre JSON Schema Draft 7 y 2020-12?

Draft 7 es la versión más desplegada y la que cuenta con mejor soporte de herramientas en la mayoría de lenguajes. Draft 2020-12 añade vocabularios más recientes, referencias dinámicas y reglas como unevaluatedProperties. Para muchas APIs de producción, Draft 7 sigue siendo la opción más compatible salvo que necesites expresamente esas capacidades nuevas.

¿Puedo validar objetos profundamente anidados con JSON Schema?

Sí. JSON Schema está pensado precisamente para eso. Puedes definir subesquemas dentro de properties e items, y el validador los aplica recursivamente a cada nivel, devolviendo la ruta completa cuando algo falla.

¿Qué hace realmente additionalProperties: false?

Convierte la validación de objetos en un modo estricto: cualquier propiedad no declarada en properties provoca error. Es muy útil para contratos de API cerrados, pero obliga a actualizar el esquema cada vez que el productor introduce nuevas claves.

Saber más