Comparador de diferencias JSON
Compara dos documentos JSON y ve al instante qué claves se añadieron, eliminaron o cambiaron, listadas por ruta de clave. Recorre objetos y arreglos de forma recursiva, y hasta las discrepancias de tipo se muestran como cambios. Todo se procesa en tu navegador, sin enviar nada a un servidor.
Consejos
- Las rutas de clave se muestran con notación de punto y corchete, como `user.address[0].city`, así que puedes ubicar de inmediato qué valor anidado cambió, sin importar cuán profunda sea la estructura del JSON.
- Los arreglos se comparan emparejando elementos por el mismo índice. Ten en cuenta que con solo reordenar los elementos de un arreglo, todos ellos se detectarán como cambiados.
- Si una misma clave contiene una cadena en un documento y un objeto en el otro, esa discrepancia de tipo también se reporta como cambio, mostrando ambos valores en bruto lado a lado.
- Al comparar respuestas de API antes y después de un despliegue, elimina primero los campos que siempre cambian, como marcas de tiempo o IDs de solicitud, para centrarte solo en las diferencias que realmente importan.
- Incluso en un JSON con enorme cantidad de valores sin cambios, solo se muestra el recuento de hojas coincidentes, manteniendo el resultado legible en lugar de abrumador.
Preguntas frecuentes
A propósito — En qué se diferencia el emparejamiento de claves entre el diff de CSV y el de JSON
Nuestro comparador de diferencias CSV (dev.csv.csv_diff) compara filas y celdas usando una única columna clave designada para identificar cada fila. El JSON no tiene una estructura plana de filas y columnas: permite objetos anidados y arreglos, así que aunque ambas herramientas se llamen "comparadores de diferencias", el algoritmo de emparejamiento subyacente es bastante distinto. En lugar de una columna clave, esta herramienta usa una "ruta de clave" construida recursivamente desde la raíz hasta cada hoja como unidad de comparación.
Los arreglos son la parte más delicada al comparar JSON. Una fila de CSV se identifica de forma única por el valor de su columna clave, pero los elementos de un arreglo JSON no tienen ningún identificador garantizado. Esta herramienta simplemente empareja elementos por índice (orden de aparición), un diseño más adecuado para rastrear cambios en la estructura de un objeto o en valores primitivos —como en archivos de configuración o respuestas de API— que para rastrear adiciones y eliminaciones dentro del contenido de un arreglo.
En la práctica, una idea similar aparece en los pipelines de integración continua que comprueban automáticamente si el contrato de respuesta de una API REST ha cambiado. Esta herramienta prioriza la comodidad de funcionar enteramente en el navegador, pero el concepto subyacente se superpone con las pruebas de instantánea (snapshot testing) y las pruebas de contrato (contract testing): detectar diferencias en la estructura JSON de forma mecánica es un desafío recurrente en muchas etapas del desarrollo de software.