我正在使用 Jersey 和 Jackson2 开发一个 Restful API。我们在开发 PUT 方法时遇到了问题。我们的 PUT 方法有点像 PATCH 方法。它只会更新请求正文中收到的属性。
我正在使用 ObjectMapper.readerForUpdating() 方法进行对象合并。但是这种方法只支持一级合并。例如:我有一个现有的 JSON 对象
{
"a": "this is a",
"b": "this is b",
"c": {
"x": 1,
"y": 2
}
}
然后我收到一个 JSON 对象喜欢
{
"a": "this is a new a",
"c": {
"x": 3
}
}
我希望合并的对象应该是这样的:
{
"a": "this is a new a",
"b": "this is b",
"c": {
"x": 3,
"y": 2
}
}
但结果是
{
"a": "this is a new a",
"b": "this is b",
"c": {
"x": 3,
"y": null
}
}
第一级属性正确合并。但是对于深层次,它是在做对象替换。有没有办法进行深度合并?