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.

Qué es un comparador de diferencias JSON

Un comparador de diferencias JSON confronta dos documentos JSON estructura por estructura y muestra al instante qué claves se añadieron, cuáles se eliminaron y qué valores cambiaron. Resulta especialmente útil cuando leer el texto completo lado a lado ya no es viable por la cantidad de información: una respuesta de API cuya forma cambió entre versiones, o un archivo de configuración que difiere de un entorno a otro. Esta herramienta recorre objetos y arreglos de forma recursiva y reporta las diferencias a nivel de ruta de clave, de modo que puedes localizar con precisión dónde cambió un valor incluso dentro de un JSON profundamente anidado.

Para que la comparación funcione, ambos documentos deben ser JSON estructuralmente válido. Si alguna de las entradas tiene un error de sintaxis —una coma faltante, una comilla sin cerrar, etc.— la herramienta indica cuál de las dos, A o B, es inválida, en lugar de intentar calcular una diferencia. También conviene entender las dos reglas de emparejamiento distintas que aplica esta herramienta: las claves de los objetos se emparejan por nombre, mientras que los elementos de los arreglos se emparejan por índice (su orden de aparición). Tener esto presente ayuda a interpretar por qué una clave concreta se marca como "cambiada" en lugar de "añadida" o "eliminada".

Cómo comparar JSON con el comparador de diferencias JSON

  1. Pega el JSON de origen (A) Pega o escribe el texto JSON en la primera casilla. Puedes copiar un archivo de configuración o una respuesta de API existente tal cual, sin necesidad de reformatearlo.
  2. Pega el JSON de destino (B) Pega la versión "después", o el JSON de un entorno distinto, en la segunda casilla. Qué documento coloques en A y cuál en B determina la dirección que se reporta para las claves "añadidas" y "eliminadas".
  3. Prueba los datos de ejemplo (opcional) Haz clic en "Cargar ejemplo" para rellenar ambas casillas con un ejemplo que incluye adiciones, eliminaciones y cambios, y así ver de inmediato el formato del resultado.
  4. Lee los resultados de la diferencia Las claves eliminadas, añadidas y cambiadas se listan junto con su ruta de clave. Para las claves cambiadas, los valores antes y después se muestran uno junto al otro para que puedas leer la diferencia de un vistazo.
  5. Limpia las entradas cuando lo necesites Usa el botón "Limpiar" para vaciar ambas casillas y empezar a comparar un nuevo par de documentos JSON.

Consejos para aprovecharla mejor

  • 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.

Casos de uso

Detectar cambios no deseados en respuestas de API

Guarda una respuesta de API antes y después de un despliegue del backend, y compárala aquí para detectar a tiempo adiciones, eliminaciones o cambios de tipo no intencionados, antes de que lleguen a los usuarios en producción.

Comparar archivos de configuración entre entornos

Compara el config.json o el package.json de staging y producción para detectar variables de entorno faltantes o discrepancias de versión que de otro modo pasarían desapercibidas.

Explicar una diferencia durante una revisión de código

Al revisar un payload de migración o una definición de esquema en formato JSON, comparte directamente la lista de diferencias generada en lugar de describir los cambios de forma verbal o en un largo hilo de comentarios.

Depurar pruebas de instantánea que fallan

Compara una instantánea (snapshot) JSON generada por una prueba automatizada con el valor esperado para identificar rápidamente qué campo exacto provocó el fallo de la prueba.

Validar payloads de webhooks de terceros

Compara un payload real recibido de un webhook con un ejemplo documentado para confirmar que realmente coincide con la estructura descrita en la especificación de la API.

Glosario

Ruta de clave
Una cadena que representa el recorrido desde la raíz de un documento JSON hasta un valor concreto, escrita con notación de punto y corchete, como `user.address[0].city`. Los resultados de la diferencia se agrupan y muestran a este nivel.
Anidamiento
Una estructura en la que un objeto o arreglo contiene a su vez más objetos o arreglos en su interior. Cuanto más profundo es el anidamiento, más difícil resulta detectar cambios solo a simple vista.
Valor hoja
Un valor terminal en un árbol JSON que ya no se ramifica más: una cadena, un número, un booleano o null. En última instancia, una comparación de diferencias se reduce a emparejar valores hoja entre sí.
Discrepancia de tipo
Una situación en la que el valor de la misma ruta de clave es de un tipo de dato (por ejemplo, una cadena) en un documento y de un tipo distinto (por ejemplo, un objeto) en el otro. Esta herramienta también reporta las discrepancias de tipo como cambios.
Error de sintaxis
Un texto mal formado que provoca que JSON.parse falle. Una coma faltante o una comilla sin cerrar son ejemplos típicos.
JSONPath
Una especificación de lenguaje de consulta para direccionar valores dentro de un documento JSON. La notación de ruta de clave usada en esta herramienta es, conceptualmente, una versión simplificada emparentada con la sintaxis de JSONPath.

Preguntas frecuentes

Se usa habitualmente para comparar la respuesta de una API antes y después de un despliegue y detectar cambios no deseados, o para identificar diferencias entre archivos de configuración (como config.json) entre distintos entornos. Extraer solo las diferencias es mucho más rápido que comparar dos JSON a simple vista.

No. Las claves de un objeto se emparejan por nombre, así que da igual que A y B las listen en un orden distinto. Solo se considera si cada clave existe y si su valor coincide, ignorando el orden visual en el texto de origen.

Los arreglos se emparejan por índice (elemento 0, elemento 1, etc.), así que aunque el contenido real sea el mismo, un cambio de orden se detectará como un cambio en ese índice. Esta herramienta no admite una comparación de arreglos que ignore el orden.

No. Todo el proceso de comparación se ejecuta enteramente en el JavaScript de tu navegador, y el contenido introducido nunca se transmite a ningún servidor, por lo que puedes comparar con seguridad incluso respuestas que incluyan claves de API o datos personales.

Si JSON.parse falla, se muestra un mensaje de error indicando claramente si A o B tiene el formato inválido, y no se calcula ninguna diferencia. Esto te da un punto de partida para localizar errores comunes, como una coma faltante o una comilla sin cerrar.
Tool-kun

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 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.