Comparar JSON (diff estructural)
Encuentra qué ha cambiado entre dos JSON por ruta, ignora el ruido de fechas e ids y exporta el JSON Patch exacto.
- Modificado
− "Ada Lovelace"
+ "Ada King"
- Añadido
+ "owner"
- Modificado
− "dark"
+ "light"
- Cambio de tipo
− true
+ "yes"
- Modificado
− "pending"
+ "shipped"
- Añadido
+ {"id":3,"total":42.5,"status":"paid"}
- Añadido
+ null
Límites
- Los enteros mayores de 2^53 pierden precisión al parsear con JSON.parse, igual que en cualquier navegador.
- Si una clave está duplicada en el mismo objeto, prevalece la última aparición.
- Los arrays enormes (más de 4 millones de celdas de comparación) se comparan por posición en lugar de por alineación.
- Todo se procesa en tu navegador: los JSON no se envían a ningún servidor.
Hecho por
Miguel Ángel Colorado Marin (MACM)
Hecho por
Miguel Ángel Colorado Marin (MACM)
Full-Stack Developer · Guadalajara, España
Desarrollo aplicaciones web, herramientas digitales y proyectos completos — desde el diseño hasta el despliegue.
Un diff de texto se vuelve inútil con JSON: reordenar claves, reformatear o insertar un elemento al principio de un array marca medio documento como distinto. Este comparador trabaja sobre la estructura. Recorre ambos documentos, alinea los arrays con el algoritmo de subsecuencia común más larga y te enseña solo los cambios reales con su ruta. Pensado para comparar respuestas de API, ficheros de configuración o fixtures de tests, permite emparejar objetos por id, ignorar campos volátiles como fechas y exportar el JSON Patch RFC 6902 que transforma A en B, verificado con miles de casos aleatorios.
Características
- ✓Diff por estructura: el orden de las claves y el formato no generan falsos cambios
- ✓Clasifica cada diferencia en añadido, eliminado, modificado o cambio de tipo
- ✓Alineación de arrays: insertar un elemento al principio es un único cambio, no N
- ✓Emparejado de arrays de objetos por una clave (id, sku, email…) aunque cambie el orden
- ✓Rutas ignoradas con comodines: updatedAt, items[*].id o **.etag
- ✓Tolerancia numérica para comparar floats y opciones para mayúsculas y espacios
- ✓Genera el JSON Patch RFC 6902 exacto de A a B y permite aplicar cualquier patch
- ✓Distingue null de clave ausente y marca errores de sintaxis con línea y columna
¿Cómo comparar dos JSON?
- 1
Pega o carga los dos JSON
Escribe el original en A y el nuevo en B, o carga archivos .json. Los errores de sintaxis se marcan con línea y columna.
- 2
Ajusta la comparación
Indica la clave para emparejar arrays, las rutas a ignorar, la tolerancia numérica o si ignorar el orden y las mayúsculas.
- 3
Revisa los cambios
Filtra por tipo de cambio o por ruta y copia cualquier ruta con un clic.
- 4
Exporta o aplica el patch
Copia el JSON Patch generado o pega uno propio para aplicarlo sobre A y ver el resultado.
Preguntas frecuentes
¿En qué se diferencia de un comparador de texto?
Un comparador de texto compara líneas, así que un cambio de indentación u orden de claves aparece como diferencia. Este compara valores por ruta: dos JSON con las mismas claves en distinto orden son idénticos.
¿Qué es un JSON Patch?
Es un formato estándar (RFC 6902) que describe cambios como una lista de operaciones add, remove o replace sobre rutas JSON Pointer. Se usa en APIs con el método HTTP PATCH y para sincronizar estados. El patch generado transforma A exactamente en B.
¿Cómo ignoro campos como updatedAt o ids generados?
Escríbelos en «Ignorar rutas». Un nombre suelto ignora esa clave en cualquier nivel; una ruta como items[*].createdAt usa * para un nivel y ** para cualquier profundidad.
¿Qué hace emparejar arrays por clave?
Si un array contiene objetos con un identificador, los compara por ese valor en lugar de por posición. Así, reordenar una lista de pedidos no genera cambios y solo verás los pedidos que se modificaron, añadieron o eliminaron.
¿Por qué el JSON Patch no respeta las opciones de comparación?
Porque un patch debe reproducir B exactamente. Las opciones sirven para leer el informe sin ruido; el patch describe la transformación completa y se valida aplicándolo sobre A.
¿Se sube mi JSON a algún servidor?
No. El análisis se ejecuta en tu navegador, así que puedes comparar respuestas con datos privados o tokens sin que salgan de tu equipo.
Herramientas relacionadas
Incrusta Comparar JSON (Diff) en tu web
Integra Comparar JSON (Diff) en cualquier página web con un simple iframe. Gratis, con atribución a miguelacm.es.
<iframe
src="https://miguelacm.es/embed/json-diff"
width="100%"
height="700"
frameborder="0"
title="Comparar JSON (Diff) — miguelacm.es"
></iframe>Ver embed en nueva pestaña →