一尘不染

使用Jackson合并两个JSON文档

json

是否可以将两个JSON文档与Jackson JSON库合并?我基本上是将Jackson映射器与简单的Java映射一起使用。

我尝试搜索Google和Jackson的文档,但找不到任何东西。


阅读 906

收藏
2020-07-27

共1个答案

一尘不染

一种方法是这样使用ObjectReader

MyBean defaults = objectMapper.readValue(defaultJson, MyBean.class);
ObjectReader updater = objectMapper.readerForUpdating(defaults);
MyBean merged = updater.readValue(overridesJson);

它将合并来自两个来源的数据。这只会进行浅表复制,即不会对包含的对象进行递归合并。

否则,您可能只需要将JSON读取为树(JsonNode),在内容上循环并手动合并即可。无论如何,这通常都是有道理的,因为合并规则并非微不足道,每个人对于合并应该如何工作都有自己的想法。

编辑 :(2017年4月3日)

根据@Fernando Correia的评论,实际上即将发布的Jackson
2.9(将于2017年4月或2017年5月发布)中增加了一个新功能,该功能最终允许进行深度合并。

2020-07-27