Saltar al contenido

Fusión profunda de JSON

Pega los documentos base y superpuesto, elige la estrategia de arrays y la regla de conflicto, y revisa el JSON combinado con su registro de operaciones.

Se ejecuta localmente en tu navegador
1Base JSON2Deep merge3Merged JSON

Base JSON
Overlay JSON

Cómo combinar dos documentos JSON con reglas de conflicto y de arrays

La herramienta fusiona un documento JSON superpuesto sobre un documento base y escribe el resultado como JSON formateado. Los objetos se combinan clave a clave de forma recursiva: una clave que solo existe en el superpuesto se añade, y una clave presente en ambos se resuelve con la regla de conflicto: usar el valor superpuesto, conservar el valor base o detenerse con un error que indica la ruta.

Los arrays siguen la estrategia elegida: reemplazar (gana el array superpuesto), concatenar (primero los elementos base y después los superpuestos), concatenar valores únicos (igual, sin repetidos) o combinar objetos por clave (los elementos con el mismo valor en el campo clave se fusionan y los nuevos se añaden). Todo ocurre en el navegador y cada cambio aparece ruta a ruta en Operaciones de combinación.

  1. Pega el documento base en JSON base y el superpuesto en JSON superpuesto, o pulsa Cargar ejemplo para ver un caso que ya combina un array por id.
  2. Elige la Estrategia de arrays: Reemplazar array, Concatenar arrays, Concatenar valores únicos o Combinar objetos por clave. El campo Clave de objetos del array aparece con la estrategia por clave y usa id por defecto.
  3. Elige el Conflicto escalar: Usar valor superpuesto (opción por defecto), Conservar valor base o Detener ante conflicto, que informa de la primera ruta en conflicto y no genera resultado.
  4. Pulsa Combinar JSON. El panel JSON combinado muestra el resultado y Operaciones de combinación enumera cada cambio ruta a ruta: añadido, usar valor superpuesto, conservar valor base, reemplazar array, concatenar arrays, concatenar valores únicos o combinar objetos por clave. Las métricas indican el número de operaciones, el tamaño en bytes y el tipo del resultado.
  5. Usa Copiar o Descargar para llevarte el resultado como voritools-merged.json, y Limpiar para vaciar las entradas, el resultado, el registro y las métricas. Si un documento no es JSON válido o falta la clave en la combinación por clave, los paneles se vacían antes de mostrar el error, así que el resultado anterior nunca se copia por error.

Qué hace cada panel, en qué se diferencian las estrategias de arrays y qué rechaza la herramienta

Objetos, valores escalares y conflictos

Los objetos se fusionan de forma recursiva y las claves propias se comparan por nombre: una clave que solo está en el superpuesto se añade y se registra como operación de añadido. Nombres como __proto__, constructor y prototype se rechazan en el lado superpuesto, de modo que un documento malicioso no puede alcanzar el prototipo de los objetos. Dos valores escalares distintos se resuelven con la regla elegida: el valor superpuesto, el valor base o un error como Conflicto de combinación en $.service.retries.

Los valores de tipos distintos no se convierten: un número en un documento y un array en el mismo campo del otro cuentan como conflicto y siguen la misma regla. Los valores idénticos se dejan como están y no generan registro, y dos documentos idénticos terminan con la única entrada $: sin cambios.

Las estrategias de arrays en la práctica

Reemplazar array conserva el array superpuesto tal cual, aunque el base tuviera más elementos. Concatenar arrays añade los elementos superpuestos después de los base sin eliminar duplicados, y Concatenar valores únicos quita los repetidos comparando su representación JSON, de modo que ["a","b"] más ["c","a"] da ["a","b","c"].

Combinar objetos por clave empareja los elementos por el valor del campo clave: un elemento superpuesto con {id: 1} se fusiona con el elemento id 1 del base en lugar de añadirse, y la comparación es textual, así que 1 y "1" son el mismo identificador. Los elementos sin esa clave, y los que no son objetos, se añaden sin tocar. El nombre de la clave se recorta, así que los espacios al principio o al final se ignoran.

Leer el resultado, privacidad y límites

El resultado es JSON plano en el orden en que lo produce la combinación: primero las claves base y después lo añadido. El registro de operaciones es la forma más rápida de auditar una combinación: cada entrada indica la ruta que cambió y, en arrays con clave, usa la forma $.users[id=1].role. Copiar lleva el documento combinado al portapapeles y Descargar lo guarda como voritools-merged.json.

La combinación se ejecuta por completo en el navegador, sin subir nada ni hacer peticiones de red, así que es apta para configuraciones internas y datos de prueba. No resuelve conflictos por sí sola ni convierte tipos; cuando una combinación es ambigua obedece a la regla elegida y deja constancia de lo que hizo.

Herramientas recientes: