JSON Diff: comparar objetos JSON
Pega dos documentos JSON para ver exactamente qué ha cambiado. Cada diferencia se lista por ruta, como $.users[2].email, y ni el formato ni el orden de las claves causan falsas alarmas.
Funciona en tu navegadorSin registroNo se sube nada
Rutas modificadas
| Cambio | Ruta | Valor anterior | Valor nuevo |
|---|
Cómo usar: JSON Diff
- Pega el JSON original a la izquierda y el modificado a la derecha, o abre dos archivos.
- Los errores de sintaxis se muestran bajo cada cuadro con la línea y la columna, para que los corrijas rápidamente.
- Lee la tabla Rutas modificadas: cada fila indica si un valor se añadió, se eliminó o cambió, con los valores antiguo y nuevo.
- Marca Ignorar orden de arrays cuando las listas sean conjuntos, por ejemplo etiquetas o permisos.
- Desplázate hasta la vista lado a lado para ver los cambios en contexto, o copia la lista de cambios como JSON.
Por qué un diff estructural de JSON supera a un diff de texto
Un diff de texto plano compara caracteres y líneas, así que dos archivos JSON con los mismos datos pueden parecer totalmente distintos si uno está minificado, indentado de otra forma o tiene las claves en otro orden. Esta herramienta analiza primero ambos documentos y compara los datos: los objetos se comparan clave por clave sin importar el orden, y los números, cadenas, booleanos y null se comparan por valor. Solo se informa de los cambios reales.
Cómo se informa de los cambios
Cada diferencia recibe una ubicación al estilo JSONPath, como $.owner.email o $.items[3].price, y uno de tres tipos:
- añadido: la clave o el elemento del array solo existe en el JSON modificado.
- eliminado: solo existe en el JSON original.
- modificado: existe en ambos, pero el valor difiere, incluidos los cambios de tipo, como una cadena que pasa a ser un número.
Los arrays se alinean con un algoritmo de subsecuencia común más larga, de modo que insertar un elemento al principio de una lista se registra como una sola adición en lugar de marcar como modificados todos los elementos siguientes.
Ignorar el orden de los arrays
Muchas APIs devuelven listas cuyo orden no tiene significado, como roles, etiquetas o IDs. Con Ignorar orden de arrays activado, los arrays se comparan como colecciones: un elemento solo cuenta como añadido o eliminado si no tiene un equivalente igual en el otro lado. La vista lado a lado ordena entonces los elementos de los arrays para que las listas iguales queden alineadas.
Usos típicos
Comparar respuestas de API entre staging y producción, comprobar qué cambió una migración en un archivo de configuración, revisar diferencias entre dos archivos package.json o tsconfig y depurar tests de snapshot.
Preguntas frecuentes
¿Importa el orden de las claves al comparar JSON?
{"a":1,"b":2} y {"b":2,"a":1} se consideran iguales. El orden de los arrays sí importa por defecto porque los arrays son ordenados, pero puedes desactivarlo con Ignorar orden de arrays.¿Se sube mi JSON a un servidor?
¿Qué significan rutas como $.users[2].email?
$ es la raíz del documento, .users es una clave y [2] es el tercer elemento de un array (los índices empiezan en 0). Las claves con espacios o caracteres especiales se escriben entre corchetes, como $["first name"].¿Es 1 igual a 1.0?
1 y "1", son distintos y se marcan como modificados.