Comparador de JSON

Compara dos documentos JSON y obtén un árbol de veredictos por ruta: igual, cambiado, añadido o eliminado, con recuentos, informe copiable y descarga.

La comparación se realiza localmente en tu navegador. Nada sale de tu dispositivo.

Resultado de la diferencia
—

Pega o carga dos documentos JSON y pulsa Comparar (escribir también refresca tras una pausa breve).

Cómo funciona

Ambos paneles se analizan con JSON.parse — un fallo en cualquiera de los dos se informa en su panel y detiene la comparación. El recorrido desciende luego por los dos árboles en paralelo: los objetos se emparejan clave a clave, de modo que el orden literal en que aparecen en el archivo nunca genera una diferencia falsa; dos escalares (o tipos que no coinciden) en la misma ubicación producen un veredicto, y cada ruta se muestra con notación de puntos y corchetes como users[2].role.

Veredictos por ruta
Cada hoja recibe uno de cuatro estados. igual — ambos lados contienen el mismo valor. cambiado — hay un valor en la misma ruta en ambos lados pero difiere, mostrado como viejo → nuevo. añadido — la clave o el índice existe solo a la derecha. eliminado — solo a la izquierda. Los subárboles añadidos o eliminados se imprimen como JSON serializado, truncados a 80 caracteres.
Las matrices se alinean por índice
Las matrices se comparan posicionalmente: el elemento 0 contra el elemento 0, y así sucesivamente. Ese es el predeterminado honesto para datos ordenados, pero es un modelo distinto de un diff tipo conjunto, que emparejaría elementos por contenido y reportaría una sola inserción donde la alineación por índice reporta una cascada de cambios. Si tus matrices son colecciones sin orden, ordénalas primero en tu propio archivo para obtener un resultado más limpio.
Porcentaje de igualdad
El resumen cuenta cada veredicto e informa la proporción de iguales: rutas iguales divididas entre todas las rutas, redondeado. Dos documentos idénticos dan por tanto 100 % de igualdad, y la estadística se calcula sobre los veredictos de hoja, así que un contenedor que simplemente sobrevive a la edición de un hijo no aporta peso propio.

Preguntas frecuentes

¿Cuánto pueden pesar los archivos JSON?

Todo se ejecuta en la memoria de tu pestaña, así que el límite real es tu dispositivo, no la herramienta. Documentos de hasta unos 5 MB se comparan con fluidez en la mayoría de máquinas; archivos mucho mayores pueden volver lento el recorrido recursivo y el árbol mostrado. Si una comparación enorme se atasca, recorta ambos lados a las secciones que realmente necesitas antes de pegarlos.

¿Puede mostrar la diferencia ordenada por ruta?

Las rutas aparecen en el orden del documento: primero las claves de objeto en el orden en que ocurren en el lado izquierdo (las exclusivas de la derecha después), y luego los índices de matriz ascendentes. No hay conmutador de orden alfabético, porque mantener el orden natural de lectura facilita comparar el resultado con tu propio archivo. Puedes copiar el informe de texto y ordenarlo externamente si lo prefieres.

¿Puedo comparar dos matrices directamente?

Sí — el valor de nivel superior puede ser una matriz en ambos lados y se diferencia por índice como cualquier otra. Solo recuerda que por índice significa posicional: si insertas un elemento al principio de una matriz de 100 elementos, cada índice posterior se desplaza y la herramienta informa con honestidad de una larga cadena de cambios en lugar de una sola inserción.

¿Por qué reordenar claves sale como igual?

Porque los objetos JSON son mapas clave/valor, no registros ordenados, y una diferencia semántica no debe depender del orden de serialización. El recorrido empareja claves por nombre, así que mover un campo de línea en el archivo no produce ninguna línea de diferencia. Las matrices, en cambio, son ordenadas, de modo que el orden de sus elementos sí importa.

¿Se sube algo a un servidor?

No. Ambos documentos se analizan y recorren localmente con JavaScript puro en tu navegador — incluso si los cargas desde disco, se leen con FileReader y nunca salen de tu dispositivo. No hay ninguna petición de red asociada a la comparación.