onlinetools.dev

Validador y generador de JSON Schema

Valida JSON contra un esquema, o infiere un esquema a partir de datos de ejemplo

Se ejecuta localmente
loading…
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.
Herramientas relacionadas