JSON Diff
Compara dos documentos JSON y observa un diff estructural de lo que se añadió, eliminó y cambió, todo en tu navegador.
Ambos documentos JSON se analizan y comparan localmente en tu navegador y nunca se suben, pero evita pegar secretos o credenciales de producción en cualquier herramienta en línea.
¿Necesitas reformar el resultado? Prueba el Formateador de JSON.
Acerca de JSON Diff
JSON Diff compara dos documentos JSON y muestra un diff estructural en lugar de un diff de texto línea por línea. Pega el JSON original a la izquierda y la versión modificada a la derecha; la herramienta analiza ambos e informa exactamente qué valores se añadieron, eliminaron, cambiaron o cambiaron de tipo, cada uno con una ruta como user.roles[2]. Como la comparación es semántica, reordenar las claves de un objeto nunca aparece como diferencia, así que solo ves los cambios que de verdad importan. Activa Ignorar el orden de los arreglos para comparar arreglos como conjuntos, u Ordenar claves para normalizar ambos lados en la vista lado a lado. Está pensado para personas desarrolladoras que comparan respuestas de API, archivos de configuración y fixtures. Todo se ejecuta localmente en tu navegador, así que el JSON que pegas nunca se sube y permanece en tu dispositivo.
Características
- Diff semántico e independiente del orden de claves: reordenar las claves de un objeto no se marca como cambio
- Informa valores añadidos, eliminados, cambiados y con cambio de tipo, cada uno con una ruta como user.roles[2]
- Distingue un cambio de tipo real (1 vs "1", null vs un valor) de un cambio de valor ordinario
- Los conteos del resumen muestran de un vistazo cuántas entradas se añadieron, eliminaron y cambiaron
- La opción Ignorar el orden de los arreglos compara los arreglos como multiconjuntos de valores en vez de por posición
- Normalización con Ordenar claves para una comparación lado a lado limpia de ambos documentos formateados
- Vista lado a lado con resaltado de sintaxis de ambos documentos JSON embellecidos
- Copia todo el diff como un resumen en texto plano, o limpia ambas entradas con un clic
Cómo usar JSON Diff
- Pega el JSON original en el cuadro Original a la izquierda.
- Pega el JSON actualizado en el cuadro Modificado a la derecha.
- Lee el diff a color: verde para añadido, rojo para eliminado, ámbar para los valores cambiados.
- Activa Ignorar el orden de los arreglos u Ordenar claves si el orden no debe contar como diferencia.
- Cambia a Lado a lado para comparar ambos documentos formateados, o copia el resumen del diff.
Ejemplo
Entrada
// Original
{ "name": "Ada", "roles": ["admin"], "active": 1 }
// Changed
{ "active": "1", "name": "Ada", "roles": ["admin", "editor"] }
Salida
+ roles[1]: "editor"
~ active: 1 → "1" (type changed)
Las claves reordenadas se ignoran; se añade un nuevo elemento al arreglo y active pasa de número a cadena.
Errores comunes y solución de problemas
- La herramienta indica «Invalid JSON on the left side» o en el lado derecho. — Corrige el documento señalado: el error indica qué lado falló y por qué. Cada entrada debe ser un valor JSON completo y válido (objeto, arreglo, cadena, número, true/false o null).
- Reordenar los elementos de un arreglo aparece como muchas entradas cambiadas. — Activa Ignorar el orden de los arreglos para compararlos como conjuntos de valores; sin esa opción, los arreglos se comparan por posición y un reordenamiento cuenta como cambios.
- 1 y "1" se reportan como distintos aunque parezcan iguales. — Eso es un cambio de tipo: el valor de la izquierda es un número y el de la derecha una cadena. JSON Diff separa a propósito los cambios de tipo de los de valor para que sean fáciles de detectar.
- Dos objetos con las mismas claves en distinto orden se reportan como cambiados. — No deberían: el diff es independiente del orden de claves. Si lo ves, es probable que un lado tenga una clave de más o de menos, o un valor distinto; revisa la ruta indicada.
Preguntas frecuentes
- ¿JSON Diff ignora el orden de las claves de un objeto?
- Sí. La comparación es semántica, así que dos objetos con las mismas claves y valores son iguales sin importar el orden de las claves. Solo se reportan adiciones, eliminaciones y cambios de valor reales, cada uno con su ruta.
- ¿Cómo trata JSON Diff los arreglos en distinto orden?
- De forma predeterminada los arreglos se comparan por posición, así que reordenar elementos aparece como cambios. Activa Ignorar el orden de los arreglos para compararlos como multiconjuntos, donde solo se marcan los miembros realmente añadidos o eliminados.
- ¿Por qué 1 y "1" se muestran como diferentes?
- Porque sus tipos JSON difieren: uno es un número y el otro una cadena. JSON Diff lo etiqueta como cambio de tipo, distinto de un cambio de valor ordinario, para que detectes números convertidos en cadena por accidente en respuestas de API.
- ¿Qué significa una ruta como user.roles[2] en el diff?
- Apunta a la ubicación exacta del cambio: la clave user, luego su arreglo roles y luego el elemento en el índice 2. Las claves de objeto usan puntos y los elementos de arreglo usan índices entre corchetes.
- ¿Puedo comparar JSON muy anidado y arreglos anidados?
- Sí. JSON Diff recorre ambos documentos de forma recursiva a través de objetos y arreglos anidados de cualquier profundidad, reportando cada cambio en su ruta completa para que las cargas grandes y muy anidadas sigan siendo legibles.
- ¿Se sube a algún lado el JSON que pego en JSON Diff?
- No. Ambos documentos se analizan y comparan por completo en tu navegador, así que el JSON que pegas —incluidos cualquier campo sensible— permanece en tu dispositivo y nunca se envía a un servidor.
Herramientas relacionadas
Todas las herramientas de ArrayKit