ObjectMapper readerForUpdating替换数组

Ral*_*alf 5 java jackson

我有两个不同的Json文件。

档案A:

{
  "label": "A",
  "links": [
    {
      "url": "urla"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

档案B:

{
  "links": [
    {
      "url": "urlb"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

现在,我想用B的内容更新A以得到以下结果Json:

{
  "label": "A",
  "links": [
    {
      "url": "urlb"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

那就是links应该用B的内容完全替换该数组。但是它将两个数组合并:

{
  "label": "A",
  "links": [
    {
      "url": "urla",
      "url": "urlb"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

这是不希望的。合并文件的代码:

JsonNode A = ... // resolved from a service call
JsonNode B = ... // resolved from a service call
ObjectMapper mapper = new ObjectMapper();
result = mapper.readerForUpdating(A).readValue(B);
Run Code Online (Sandbox Code Playgroud)

我也尝试设置,mapper.setDefaultMergeable(false);但没有帮助。

我用 com.fasterxml.jackson.core:jackson-core:jar:2.9.8

有人能帮我吗?

Yak*_*sev 2

我认为这可以帮助: mapper.configOverride(ArrayNode.class).setMergeable(false)