Comparar JSON: Encuentra Diferencias Entre Dos Archivos
Pega el original en A y la nueva versión en B. El orden de las claves nunca importa, y los arrays se pueden emparejar por un campo ID en lugar de por posición, así una lista reordenada no te inunda de cambios falsos.
Cómo Comparar Dos Archivos JSON
- Pega o sube el JSON original en A, y la nueva versión en B.
- Elige cómo emparejar los arrays — Inteligente (detecta un campo ID automáticamente), Por posición, Ignorar orden o Por clave — y añade las rutas que quieras ignorar, como marcas de tiempo.
- Pulsa "Comparar" y revisa el resumen y la lista de cambios, y exporta un JSON Patch o un informe cuando termines.
Características
- Comparación semántica: el orden de las claves nunca cuenta como diferencia
- Cuatro modos de emparejar arrays, incluido el emparejamiento por un ID detectado automáticamente para que las listas reordenadas no generen diferencias falsas
- Rutas a ignorar con comodines (p. ej.
$..updatedAt) para omitir campos ruidosos como marcas de tiempo - Tolerancia numérica, comparación de texto sin distinguir mayúsculas ni espacios, y conversión de tipos opcional
- Modo "Comparar solo claves" para archivos de traducción: ve exactamente qué claves faltan en cada lado
- Exporta un JSON Patch estándar (RFC 6902), verificado automáticamente al volver a aplicarlo sobre A y comprobar que coincide con B
- Exporta un informe de cambios en Markdown o CSV
- Funciona totalmente en tu navegador: sin registro, sin enviar datos a ningún sitio
Por qué el orden de los arrays genera diferencias falsas
Un diff de texto línea a línea trata el JSON como texto, así que el formato, el orden de claves y los espacios generan ruido. Un diff semántico analiza ambos lados y compara los datos: los objetos son mapas sin orden, así que el orden de claves nunca importa, pero los arrays son más complicados — muchos arrays reales son en realidad listas de registros con un ID (usuarios, pedidos, permisos), y compararlos estrictamente por posición convierte un solo registro insertado en decenas de líneas "cambiadas". Emparejar los elementos del array por clave (o automáticamente con el modo Inteligente) soluciona esto.
Cómo ignorar marcas de tiempo y otro ruido
Añade un patrón como $..updatedAt en "Ignorar rutas" para omitir un campo dondequiera que aparezca, o $.meta.requestId para omitir solo una ruta concreta. Es útil en pruebas de regresión de API, donde las marcas de tiempo y los ID de solicitud cambian en cada llamada sin ser diferencias reales.
JSON Patch, explicado
JSON Patch (RFC 6902) es una lista estándar de operaciones — añadir, eliminar, reemplazar — que transforma el primer documento en el segundo. Expórtalo aquí y aplícalo en tu código donde ya soporte el estándar.
Para formatear y validar un solo documento JSON, usa el Formateador JSON. Para otras conversiones de datos estructurados, prueba CSV a SQL o el Codificador Base64.
Preguntas Frecuentes
¿Importa el orden de las claves?
{"a":1,"b":2} y {"b":2,"a":1} son iguales.¿Cómo comparo arrays con distinto orden?
id, y solo verás los cambios reales.¿Puedo ignorar campos como marcas de tiempo?
$..updatedAt en "Ignorar rutas".