Одним из способов является использование ObjectReader
примерно так:
MyBean defaults = objectMapper.readValue(defaultJson, MyBean.class);
ObjectReader updater = objectMapper.readerForUpdating(defaults);
MyBean merged = updater.readValue(overridesJson);
, который будет объединять данные из двух источников.Это делает только поверхностную копию, т. Е. Не выполняет рекурсивное объединение содержащихся объектов.
В противном случае вам может понадобиться просто прочитать JSON в виде дерева (JsonNode
), выполнить цикл по содержимому и выполнить слияние вручную.В любом случае это часто имеет смысл, поскольку правила слияния не тривиальны, и у каждого есть свои представления о том, как слияние должно работать.
РЕДАКТИРОВАТЬ : (03-Apr-2017)
Согласно комментарию @Fernando Correia, в новой версии Jackson 2.9 (которая будет выпущена в апреле или мае 2017 года) добавлена новая функция , которая, наконец, позволяет осуществлять глубокое слияние.