tigtools

JSON Diff

Pega dos documentos JSON para ver exactamente qué valores difieren, listados por rutas como $.order.items[2].price.

Se ejecuta en tu navegador Sin registro

Comparar arreglos
Mostrar

Cómo usarla

  1. Pega el JSON original a la izquierda y el JSON modificado a la derecha, o prueba el ejemplo.
  2. Elige cómo comparar los arrays: por posición o emparejando elementos para que un elemento insertado se informe una sola vez.
  3. Lee las diferencias como lista o en paralelo. Cada una tiene una ruta desde la raíz ($).
  4. Copia el informe para pegarlo en un ticket o en una revisión de código.

Cómo funciona

Ambos documentos se analizan y comparan como datos, no como texto. Los objetos se comparan clave por clave, por lo que el orden de las claves y los espacios en blanco o la sangría no importan. Los números se comparan por valor, de modo que 1 y 1.0 son iguales.

Cada diferencia tiene una ruta escrita como una expresión JSONPath: $ es la raíz, .name es una propiedad, [2] es un índice de array y las claves que no son nombres simples se escriben entre comillas, como en $["first-name"]. Se notifican cuatro tipos de diferencia: añadido (solo en el documento de la derecha), eliminado (solo en el de la izquierda), modificado (mismo tipo, valor distinto) y tipo cambiado (por ejemplo, el número 44.9 pasó a ser la cadena "44.90", o un valor pasó a ser null). Cuando se añade o elimina un objeto o array completo, se notifica una sola vez en su propia ruta, y no una vez por campo.

Los arrays se comparan por posición de forma predeterminada: el elemento 0 con el elemento 0, el elemento 1 con el elemento 1. Si se inserta un elemento al principio, todos los elementos posteriores parecen modificados. «Emparejar elementos movidos» primero alinea los dos arrays usando la subsecuencia común más larga de elementos iguales, de modo que una inserción o eliminación se notifica solo una vez y los elementos restantes se emparejan entre sí. Los elementos añadidos usan su índice en el documento de la derecha; los eliminados, su índice en el de la izquierda. El emparejamiento se omite en arrays muy grandes (más de unos 2 millones de pares de elementos), que se comparan por posición.

Las rutas de clave de la lista se ordenan alfabéticamente dentro de cada objeto. Se muestran hasta 2000 diferencias; el informe copiado siempre contiene todas.

Ejemplos

Comprobar un cambio en una API

Compara la respuesta de ayer y la de hoy para el mismo pedido. La diferencia muestra que $.status cambió de "pending" a "shipped", $.total cambió de tipo de número a cadena, $.coupon se eliminó y $.customer.phone se añadió.

Deriva de configuración

Pega la configuración JSON de staging y de producción. Como se ignora el orden de las claves, solo aparecen las diferencias reales, como $.cache.ttl 300 → 60, incluso si los archivos fueron guardados por herramientas diferentes.

Listas con un elemento insertado

Una lista de productos recibió un nuevo primer elemento. Por posición, todos los productos aparecen como modificados; con «Emparejar elementos movidos», el resultado es un único «Añadido $[0]».

Preguntas frecuentes

¿En qué se diferencia de una comparación de texto?

Una comparación de texto compara líneas, por lo que reordenar claves o cambiar el formato aparece como cambios. Esta herramienta compara los datos analizados, de modo que solo se informan las diferencias en valores, tipos y estructura.

¿Por qué un array muestra muchos cambios después de una inserción?

En el modo «Por posición», los elementos se comparan en el mismo índice y una inserción desplaza todos los elementos posteriores. Cambia a «Emparejar elementos movidos» para alinear primero los elementos iguales.

¿Se consideran iguales "1" y 1?

No. Uno es una cadena y el otro un número, por lo que la diferencia se indica como un cambio de tipo. Los valores del mismo tipo se comparan de forma exacta.

¿Puedo comparar archivos muy grandes?

Los archivos de unos pocos megabytes funcionan, pero todo se procesa en la memoria del navegador, por lo que los documentos muy grandes pueden ser lentos en teléfonos.

Privacidad

Ambos documentos se analizan y comparan solo en tu navegador. No se sube nada, no se almacena nada ni se incluye en las analíticas.