JSON Diff
Pega dos documentos JSON y ve exactamente qué claves se añadieron, eliminaron, o cambiaron entre ellos.
Cómo funciona esto
Ambos lados se analizan como JSON, luego se comparan clave por clave e índice por índice. Las claves que solo están a la derecha son adiciones, las que solo están a la izquierda son eliminaciones, y las claves presentes en ambos lados con valores diferentes son cambios. El orden de las claves del objeto no importa, solo los valores.
Cómo funciona
Ambos lados pasan primero por JSON.parse, así que si uno no es JSON válido obtienes el propio mensaje de error del parser señalando el problema en vez de un diff inservible. La comparación recorre entonces las dos estructuras analizadas recursivamente: para objetos toma la unión de ambos conjuntos de claves y recurre en cada clave, para arrays compara índice por índice, y los valores hoja se consideran iguales solo si se serializan de forma idéntica. Cada diferencia se emite como una ruta tipo user.address[1].zip etiquetada como añadida, eliminada, o cambiada, y luego se resume en conteos.
Como el diff se ejecuta sobre valores analizados en vez de texto, el formato es invisible: la indentación, el orden de claves, y las diferencias de espacios en blanco no producen ruido alguno, que es el punto entero frente a un diff de texto basado en líneas. El compromiso a entender es la alineación de arrays. Es posicional, así que insertar un elemento al principio de un array largo reporta cada índice siguiente como "cambiado" más una adición al final. Cuando veas una pared de entradas cambiadas que parecen todas desplazadas por uno, léelo como "algo se insertó o eliminó al principio de este array", no como docenas de ediciones independientes.
El análisis y la comparación ocurren por completo en el JavaScript de esta página. Abre la pestaña Red de las DevTools y pulsa Comparar: ninguna petición transporta tu JSON, así que las respuestas de API y archivos de configuración con secretos se quedan en tu máquina.