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
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
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.
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.
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.
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.