Qué hace esta herramienta
Normaliza ambos lados —indentación de dos espacios, claves ordenadas— y luego los compara línea a línea y muestra el resultado como diff unificado:
@@ -2,4 +2,4 @@
"host": "localhost",
- "port": 8080,
+ "port": 3000,
"tls": true
- es el original, + el modificado, y la línea @@ da la región. Es el formato que hablan git diff y patch.
Qué cuenta como diferencia
| ¿diferencia? | |
|---|---|
| Indentación, saltos de línea | no |
| Orden de claves de un objeto | no, por defecto |
| Orden de elementos de un array | sí |
| Un valor que cambió | sí |
Objetos y arrays se tratan distinto porque JSON los trata distinto: un objeto es un conjunto no ordenado de pares, un array es una secuencia. Reordenar las claves de un objeto da el mismo valor; reordenar los elementos de un array da otro.
Hasta la última cifra
{ "id": 12345678901234567890 }
{ "id": 12345678901234567891 }
Estos dos documentos difieren, y esta herramienta lo dice.
Merece escribirse porque no siempre fue así. Normalizar ambos lados con un análisis JSON corriente hacía pasar cada número por un flotante de doble precisión, y los dos identificadores —veinte cifras, distintas solo en la última— se confundían en un mismo valor. El diff volvía vacío, lo que se lee como ninguna diferencia.
Un diff vacío es una afirmación, no un encogimiento de hombros. Una herramienta de comparación es justamente aquella a la que pides ver lo que el ojo no ve: ahora ambos lados se leen sin pérdida y se comparan tal como están escritos.
Las claves repetidas se señalan
Si uno de los dos documentos repite una clave, la comparación se detiene y lo dice, exactamente como hace el formateador JSON. Quedarse solo con la última aparición de cada una —lo que la mayoría de los analizadores hace sin ruido— dejaría que una diferencia real entre los dos archivos se esfumara antes incluso de empezar.
Privado por diseño
Todo se ejecuta localmente en tu navegador con JavaScript. Tus datos nunca se suben a un servidor, lo que hace que la herramienta sea segura para contenido sensible y funcione sin conexión.