Validador y generador de JSON Schema
Valida JSON contra un esquema, o infiere un esquema a partir de datos de ejemplo
Sobre esta herramienta
Dos direcciones de la misma disciplina: pega un JSON de ejemplo y obtén un esquema draft-07 inferido de él, o pega datos más un esquema y ve cada violación listada con su ruta JSON. La validación corre sobre Ajv — el mismo motor que usan la mayoría de servicios Node — así que lo que pasa aquí pasa en CI.
La inferencia piensa en producción: las claves de objeto se convierten en propiedades tipadas y entradas required, los arrays fusionan las formas de todos sus miembros, los enteros se distinguen de los flotantes, y las claves que aparecen solo en algunos miembros de un array se dejan correctamente fuera de required. El resultado es un punto de partida que tú endureces con formatos, rangos y patrones.
Las respuestas de API y los archivos de configuración son exactamente los datos que menos quieres en un servidor ajeno. Tanto la inferencia como la validación corren por completo en tu navegador.
Preguntas frecuentes
- ¿Qué draft de JSON Schema se soporta?
- La inferencia emite draft-07, el draft con más soporte entre editores y validadores. La validación acepta draft-07 y los drafts anteriores que Ajv entiende en modo no estricto; las palabras clave de 2019-09/2020-12 en su mayoría también funcionan, ya que las desconocidas se ignoran en lugar de ser fatales.
- ¿Qué significa el $ en las rutas de violación?
- Es la raíz del documento, al estilo JSONPath: $.age significa la propiedad age de nivel superior, $.items.2.name el name del tercer elemento del array. Una ruta vacía ($) significa que la violación afecta a la propia raíz del documento — tipo incorrecto, o una propiedad required ausente.
- ¿Por qué el esquema inferido es más estricto o más laxo de lo que esperaba?
- Describe exactamente la muestra que le diste: los campos presentes en todas partes se vuelven required, y solo se permiten los tipos observados. Aliméntalo con una muestra más variada (un array de objetos representativos) para obtener un esquema más general, y luego ajusta a mano — la inferencia no puede conocer la intención.
- ¿La validación soporta format, pattern y otras palabras clave de restricción?
- Las palabras clave estructurales (type, required, properties, items, enum, minimum, pattern…) se aplican por completo. Las cadenas de format como "email" o "date-time" no se comprueban — eso refleja la especificación de JSON Schema, donde format es una anotación por defecto, y evita una falsa confianza.