title: How to do deep merge JSON in jackson 2?
body: <p>I am using Jersey and Jackson2 to development a Restful API. We have a problem when we development PUT method. Our PUT method is kind of like PATCH method. It will only updates the properties received in the request body.</p>
  
  <p>I am using ObjectMapper.readerForUpdating() method to do object merging. But this method only support first level merge. For instance: I have an existed JSON object</p>
  
  <pre><code>{
    "a": "this is a",
    "b": "this is b",
    "c": {
      "x": 1,
      "y": 2
    }
  }
  </code></pre>
  
  <p>And then I receive a JSON object likes</p>
  
  <pre><code>{
    "a": "this is a new a",
    "c": {
      "x": 3
    }
  }
  </code></pre>
  
  <p>I expect the merged object should be like:</p>
  
  <pre><code>{
    "a": "this is a new a",
    "b": "this is b",
    "c": {
      "x": 3,
      "y": 2
    }
  }
  </code></pre>
  
  <p>But the result is </p>
  
  <pre><code>{
    "a": "this is a new a",
    "b": "this is b",
    "c": {
      "x": 3,
      "y": null
    }
  }
  </code></pre>
  
  <p>The first level properties are merged correctly. But for the deep level, it is doing the object replacement. Is there any way to do deep merge?</p>