IA en tu dispositivo: profesional y privado.

Comparador Diff JSON

Diff JSON con emparejado de arrays, filtros y parche

  • Todo en su dispositivo
  • Arrays emparejados, no volcados
  • Exporta parche JSON o Markdown

Suelte dos archivos JSON, o pegue abajo

JSON, JSONC, GeoJSON, source maps, texto · Suelte un par y se emparejan por nombre

Ajustes de comparación
Vista
Vista
Qué cuenta como diferencia

Cada opción relaja una cosa concreta. El informe registra cuáles estaban activas.

Tolerancia numérica

Cuánto deben acercarse dos números para contar como iguales.

Emparejar elementos

Indique un campo único y los elementos se alinearán por su valor en vez de por posición.

Saltarse esto

Separado por comas. Las rutas admiten * para un paso y ** para cualquier número.

Límites

Gratis: un par, hasta 10.0 MB por lado. Pro lo eleva a lo que su dispositivo pueda manejar y compara hasta 50 pares a la vez.

Añada dos documentos para comparar

Cómo comparar dos archivos JSON

  1. 1Añada el primer documentoPegue JSON en el cuadro izquierdo o suelte un archivo .json en el área de carga. Si suelta dos archivos a la vez se emparejan solos: nombres como users.before.json y users.after.json se reconocen, y el lado más antiguo va a la izquierda.
  2. 2Añada el segundo documentoPegue o suelte el segundo documento en el cuadro derecho. Use Intercambiar si los lados quedaron al revés.
  3. 3Lea las diferenciasLa comparación se ejecuta mientras escribe. Cambie entre las vistas en paralelo, en línea y por ruta; las secciones sin cambios quedan plegadas hasta que las abre, y los botones de anterior y siguiente saltan entre cambios.
  4. 4Ajuste qué cuenta como diferenciaIgnore el orden de los arrays, las mayúsculas o los espacios; fije una tolerancia numérica; indique claves o rutas que saltarse; o empareje elementos por un campo id para que una lista reordenada se lea como reordenada y no como reescrita.
  5. 5Exporte el resultadoCopie el resumen, descargue un parche JSON RFC 6902 que convierte el documento izquierdo en el derecho, o descargue un informe Markdown para pegar en una pull request o un ticket.

Qué ofrece esta herramienta de diff JSON

Encuentre los cambios exactos entre dos objetos JSON, incluidas las claves añadidas, eliminadas y cambiadas, con filtrado rápido y diagnósticos claros. Pegue o suelte dos documentos y la comparación se ejecuta en su dispositivo mientras escribe: cada diferencia se informa con su ruta exacta, los arrays se emparejan elemento a elemento en lugar de volcarse como un bloque, y el resultado puede salir como parche JSON, informe Markdown o resumen copiable.

  • Diferencias con ruta exacta — Cada cambio se direcciona con un JSON Pointer, así que users/1/name significa ese campo de ese elemento y nada más. Una clave que contenga literalmente un punto o una barra se escapa en vez de confundirse con la ruta que la rodea.
  • Tres formas de leerlo — En paralelo para revisar, en línea para una vista de estilo parche, o una lista plana por ruta para ir directo a lo que se movió. Las secciones sin cambios quedan plegadas hasta que abre una.
  • Cuatro tipos de cambio — Añadido, eliminado, cambiado y tipo cambiado. Un valor que pasa de "3" a 3 se señala aparte, porque es el cambio con más probabilidad de romper lo que lea el documento después.
  • Exportaciones que sirven — Un parche JSON RFC 6902 que otras herramientas pueden aplicar, un informe Markdown para una pull request, o un resumen simple para un mensaje. La página anterior no exportaba nada.

Cómo se emparejan los arrays

Esta es la parte que separa un diff JSON útil de uno frustrante. Comparar dos arrays posición a posición solo funciona mientras no se inserte ni se elimine nada: añada un elemento al principio de una lista de mil y todos los siguientes quedarán alineados con el vecino equivocado, así que un cambio de un elemento se informa como mil.

Por eso los arrays se alinean antes de compararse, con la que encaje de estas cuatro estrategias. La que se usó se muestra junto al resumen, porque la primera pregunta que cualquiera hace ante un diff de arrays es por qué se emparejaron dos elementos concretos.

  • Por id — Indique un campo en Emparejar elementos y los elementos se alinean por su valor. Una colección que volvió de una API en otro orden se lee entonces como reordenada, informando solo del registro realmente cambiado. Solo se usa cuando todos los elementos llevan el campo y ningún valor se repite: una clave no única produciría un emparejamiento seguro, ordenado y equivocado, así que se descarta en vez de adivinarlo.
  • Por subsecuencia común más larga — El comportamiento por defecto. Primero se emparejan el prefijo y el sufijo comunes, y luego el centro se alinea para que la menor cantidad posible de elementos cuente como insertada o eliminada. Una inserción es una adición; una supresión es una eliminación; todo lo demás sigue alineado.
  • Como conjunto — Active Ignorar orden de arrays y las dos listas se comparan como colecciones sin orden, de modo que los elementos que solo se movieron no son diferencias.
  • Por posición — La respuesta honesta para dos listas con casi nada en común, donde cualquier emparejamiento es arbitrario y fingir lo contrario solo añade ruido.

Opciones explicadas

La comparación por defecto es estricta: cada valor, cada tipo y cada posición de array tiene que coincidir. Cada opción de abajo relaja una cosa concreta, y el informe registra cuáles estaban activas, así que un resultado siempre se puede releer más tarde.

  • Ignorar orden de arrays — Tratar los arrays como colecciones sin orden. Útil para listas de etiquetas, conjuntos de permisos y todo aquello cuyo orden no significa nada.
  • Ignorar mayúsculas — Comparar cadenas sin tener en cuenta las mayúsculas. Útil para etiquetas y valores de enumeración que cambiaron de estilo pero no de significado.
  • Ignorar espacios — Recortar las cadenas y colapsar las series de espacios antes de comparar, para que una descripción recompuesta no se lea como una reescritura.
  • Tolerancia numérica — Elija cuánto deben acercarse dos números para contar como iguales, desde exacto hasta 1. Póngala en 0,0001 y el ruido de redondeo desaparece mientras que un cambio real de precio no.
  • Ignorar claves — Nombre claves — updatedAt, requestId, etag — y se saltan allí donde aparezcan, a cualquier profundidad. Esto es lo que convierte dos capturas de una API en un diff legible.
  • Ignorar rutas — Saltarse una ubicación concreta en vez de un nombre. Admite comodines: /users/*/lastSeen omite ese campo para todos los usuarios y /meta/** omite todo lo que hay bajo meta.
  • Permitir comentarios y comas finales — Acepta JSONC, para poder comparar archivos de configuración tal como están escritos. Soltar un archivo .jsonc lo activa por usted.
  • Comparar mientras escribe — Activo por defecto. Desactívelo en documentos muy grandes si prefiere comparar a demanda; el botón indicará entonces cuántos resultados están desactualizados.

Rutas, y por qué son JSON Pointers

Cada diferencia lleva un JSON Pointer RFC 6901 — /users/1/name en vez de users.1.name. La distinción importa más de lo que parece, porque una ruta construida uniendo claves con puntos es ambigua en cuanto una clave contiene uno.

Un documento con una clave llamada literalmente a.b y un documento con un a anidado que contiene b producen la misma ruta con puntos, así que dos ubicaciones distintas reclaman la misma dirección y ninguna puede resolverse de vuelta a un nodo. Un pointer escapa el separador en vez de reservarlo: ~ se convierte en ~0 y / en ~1, de modo que cada ruta resuelve exactamente a un sitio. Eso es lo que hace aplicable el parche exportado, posibles los botones de salto entre cambios, y utilizable el resultado por otra herramienta.

  • En pantalla — Las rutas se muestran en una forma más amable — $.users[1].name — porque es lo que mejor se lee. Lo que se exporta es el pointer.
  • En el parche — Cada operación se direcciona con su pointer, que es lo que hace del archivo un parche RFC 6902 estándar y no algo que solo entienda esta herramienta.

Exportar una comparación

Un diff suele ser la prueba de otra cosa — una revisión, un ticket, una comprobación de despliegue — así que tiene que poder salir de la página. Tres exportaciones cubren las formas en que eso ocurre, y las tres están disponibles en el plan gratuito.

  • Parche JSON (RFC 6902) — Una lista estándar de operaciones add, remove y replace que convierte el documento izquierdo en el derecho. Las operaciones sobre arrays se ordenan para que los índices sigan siendo válidos a medida que se aplica el parche: primero todo lo que hay dentro de un elemento, luego las eliminaciones desde el final, y luego las inserciones desde el principio.
  • Informe Markdown — Una tabla resumen, los ajustes que se usaron y una fila por diferencia con la ruta, el tipo de cambio y ambos valores. Los valores que contienen una barra vertical se escapan, así que una fila de la tabla nunca puede partirse en columnas equivocadas.
  • Resumen copiable — Una lista en texto plano con prefijos +, - y ~, para un mensaje de chat o una nota de commit.
  • Un ZIP para el lote — Con Pro, cada comparación de la cola exporta su informe y su parche a un único archivo comprimido.

Claves duplicadas y otras cosas que JSON esconde

JSON permite que un objeto declare la misma clave dos veces. Todos los analizadores que existen lo aceptan y conservan en silencio el último valor, lo que significa que dos documentos pueden diferir en una clave que ninguna comparación podría ver jamás: la diferencia desaparece antes de que empiece la comparación.

Ambos lados se revisan en busca de claves repetidas y se le indica cuál y dónde. La revisión se ejecuta después de aparecer el resultado, así que nunca retrasa la respuesta. Otros dos casos silenciosos se tratan igual: los números se comparan por valor y no por cómo se escribieron, así que 1, 1.0 y 1e0 son un mismo valor y -0 es igual a 0; y las claves de un objeto se comparan como conjunto, así que reordenarlas no es un cambio.

  • La misma clave dos veces — Se informa como aviso indicando la clave y su ubicación, en el lado en que aparezca.
  • Números escritos de otra forma — 1 y 1.0 son el mismo valor y no se informan como cambio.
  • Claves en otro orden — Los objetos no tienen orden por definición, así que un objeto reordenado se compara como idéntico.
  • Cualquier raíz, no solo un objeto — Un array, una cadena, un número, true, false o null en la raíz se comparan con normalidad.

Qué puede comparar

La herramienta abre exactamente los formatos de abajo y rechaza el resto en el momento en que elige el archivo, en lugar de dejar que llegue al analizador y falle. Un archivo rechazado se nombra, y también la herramienta que lo convierte.

  • JSON, GeoJSON, source maps, texto plano — .json, .geojson, .map y .txt se abren directamente. Los archivos se reconocen por la extensión, no por el tipo que informa su sistema, que muchas veces no es ninguno.
  • JSONC — .jsonc se abre aceptando comentarios y comas finales automáticamente. La opción también puede activarse a mano para un .json que los contenga.
  • YAML y XML — Rechazados, con un enlace al conversor YAML a JSON o XML a JSON. Convierta primero y luego compare.
  • CSV y Excel — Rechazados, con un enlace a CSV a JSON o Excel a JSON.

Velocidad y qué ocurre con documentos grandes

La comparación se ejecuta fuera del hilo principal, así que la página sigue respondiendo mientras trabaja y Cancelar cancela de verdad, también durante la fase más lenta y no solo entre pasos. El progreso es real: cuenta nodos recorridos, no segundos transcurridos.

La lista de resultados se muestra por ventanas en vez de construirse entera. Una comparación con miles de diferencias solo dibuja las filas que están en pantalla, y por eso un diff muy grande se desplaza con fluidez en lugar de congelar la pestaña mientras se crean decenas de miles de elementos. Las secciones sin cambios ni siquiera se construyen hasta que abre una.

  • Mientras escribe — Las ediciones se agrupan en una sola comparación en lugar de una por pulsación, y solo se ejecuta una a la vez.
  • Cancelar — Se detiene en una fracción de segundo, en cualquier punto de la ejecución.
  • Los conteos siguen siendo exactos — Por encima de 100.000 diferencias la lista deja de crecer pero los totales no, y la página indica que la lista se truncó. Un resumen que informara de menos en silencio sería peor que no tener resumen.

Un par de 10 MB se analiza, se compara y produce su parche en bastante menos de un segundo, fuera del hilo principal, así que la página sigue respondiendo mientras trabaja.

¿Por qué usar un diff JSON?

Los archivos de configuración, las respuestas de API y los datos exportados cambian entre versiones, y la parte interesante casi nunca se ve en el texto en bruto. Una comparación estructural dice exactamente qué claves se añadieron, se eliminaron o cambiaron de tipo sin leer ninguno de los dos documentos, y eso es lo que la hace útil en una revisión, un informe de error o una auditoría.

  • Revisiones más rápidas — Detecte cambios estructurales en configuraciones y payloads sin una lectura línea a línea, y pegue el informe Markdown directamente en la pull request.
  • Comprobación de regresiones — Compare una respuesta esperada con una real, ignore los campos que siempre cambian y vea solo lo que se movió de verdad.
  • Migraciones y auditorías — Confirme que una transformación conservó todos los campos que debía, y produzca un parche como registro de lo que cambió.
  • Nada sale de su dispositivo — Credenciales, registros de clientes y payloads internos se comparan donde ya están: nada se sube y nada se guarda.

Límites y qué cambia con Pro

El plan gratuito está limitado en escala, nunca en funciones: todas las opciones de comparación, las tres vistas y todas las exportaciones de un par funcionan en el plan gratuito. Pro sube el techo y añade el lote.

  • Gratis — Un par cada vez, hasta 10 MB por lado. Todas las opciones, las tres vistas y las exportaciones de parche JSON, Markdown y resumen.
  • Pro — Documentos hasta lo que su dispositivo pueda manejar, y hasta 50 pares en cola a la vez — emparejados por nombre, con todos los informes y parches en un único ZIP.
  • Si un archivo es demasiado grande — El rechazo indica el tamaño real y el límite, y enlaza al Minificador JSON: un documento con sangría de dos espacios suele ser en su mayor parte sangría, y minificarlo es a menudo la solución completa.

Preguntas frecuentes

¿Cómo funciona la herramienta de diff JSON?

Pegue o suelte dos documentos JSON y la comparación se ejecuta en su dispositivo mientras escribe. Ambos lados se analizan y luego se recorren juntos, clave por clave y elemento por elemento, y cada diferencia se informa con su ruta exacta: añadido a la derecha, eliminado de la izquierda, valor cambiado o tipo cambiado. Los conteos muestran los totales y puede leer el resultado en paralelo, en línea o como lista de rutas.

¿Están seguros mis datos?

Sí. Ambos documentos se leen y se comparan íntegramente en su dispositivo: nada se sube, nada se guarda y no se envía ninguna copia a ningún sitio. La comparación sigue funcionando con la red desconectada una vez cargada la página, que es la forma más sencilla de comprobarlo usted mismo.

¿Cómo se comparan los arrays y los objetos anidados?

Los objetos anidados se comparan clave por clave a cualquier profundidad. Los arrays se emparejan elemento a elemento en vez de compararse enteros, así que cambiar un campo de un elemento en una lista de mil se informa como un único cambio en la ruta de ese elemento, no como «el array cambió». Insertar un elemento es una sola adición, no un desplazamiento de todos los siguientes. Si sus elementos llevan un id, indíquelo en Emparejar elementos y las listas reordenadas se alinearán por id en vez de por posición.

¿Qué pasa si uno de mis JSON no es válido?

Se comprueban los dos lados, así que se le informa de ambos problemas a la vez en lugar de arreglar uno y descubrir el otro. Cada error indica la línea y la columna, el texto alrededor con un signo de intercalación bajo el punto exacto, y enlaces al Formateador y al Validador JSON. Si el archivo solo falló por contener comentarios o una coma final, la herramienta lo dice y ofrece aceptarlos.

¿Puedo exportar las diferencias?

Sí, de tres formas. Copiar resumen deja en el portapapeles una lista en texto plano de cada cambio. Descargar parche JSON entrega un parche RFC 6902, un archivo estándar que otras herramientas pueden aplicar para convertir el documento izquierdo en el derecho. Descargar Markdown genera un informe con tabla resumen y una fila por cambio, listo para pegar en una pull request o un ticket. Con Pro, un lote de comparaciones se descarga como un único ZIP.

¿Compara archivos de configuración con comentarios, o arrays JSON en la raíz?

Ambas cosas. Active Permitir comentarios y comas finales para comparar tsconfig.json, .vscode/settings.json, devcontainer.json y cualquier otro archivo escrito como JSONC — soltar un archivo .jsonc activa la opción por usted. La raíz del documento puede ser cualquier cosa que permita JSON: un objeto, un array, una cadena, un número, true, false o null. Una respuesta de API que devuelve un array suelto se compara igual que un objeto.

¿Cuáles son los límites de tamaño y qué añade Pro?

La versión gratuita compara un par de documentos de hasta 10 MB por lado, con todas las opciones de comparación y todas las exportaciones de un par disponibles. Pro eleva el tamaño hasta lo que su dispositivo pueda manejar y permite encolar hasta 50 pares a la vez: los archivos se emparejan por nombre y todos los informes y parches se descargan en un solo ZIP. Ninguna opción ni exportación se retiene en el plan gratuito.

¿Por qué mi documento tiene la misma clave dos veces?

JSON lo permite y todos los analizadores lo aceptan, conservando en silencio el último valor, lo que significa que dos documentos pueden diferir en una clave que ninguna comparación podría ver. Esta herramienta revisa ambos lados en busca de claves repetidas y le avisa, indicando la clave y dónde está. Merece la pena comprobarlo siempre que un diff salga más vacío de lo esperado.

4.8de 5

de 72 valoraciones

Valora esta herramienta

Toca una estrella — es un segundo