Class JsonMerge

java.lang.Object
com.github.hemantsonu20.json.JsonMerge

public class JsonMerge extends Object
This class provides methods to merge two json of any nested level into a single json.
  • Constructor Details

    • JsonMerge

      public JsonMerge()
  • Method Details

    • merge

      public static String merge(String srcJsonStr, String targetJsonStr)
      Method to merge two json objects into single json object.

      It merges two json of any nested level into a single json following below logic.

      • When keys are different, both keys with their values will be copied at same level.
      • When keys are same at some level, following table denotes what value will be used.

        Description
        Src / Target JSON Value JSON Array JSON Object
        JSON Value1 Src Src Src
        JSON Array Src2 Merge Src
        JSON Object Src Src Merge3
        • 1 Json Value denotes boolean, number or string value in json.
        • 2 Src denotes Src value will be copied.
        • 3 Merge denotes both Src and Target values will be merged.

      Examples

      Example 1

      Source Json

      
       {
         "name": "json-merge-src"
       }
       

      Target Json

      
       {
         "name": "json-merge-target"
       }
       

      Output

      
       {
         "name": "json-merge-src"
       }
       
      Example 2

      Source Json

      
       {
         "level1": {
           "key1": "SrcValue1"
         }
       }
       

      Target Json

      
       {
         "level1": {
           "key1": "targetValue1",
           "level2": {
             "key2": "value2"
           }
         }
       }
       

      Output

      
       {
         "level1": {
           "key1": "SrcValue1",
           "level2": {
             "key2": "value2"
           }
         }
       }
       
      Parameters:
      srcJsonStr - source json string
      targetJsonStr - target json string
      Returns:
      merged json as a string
    • merge

      public static JsonNode merge(JsonNode srcNode, JsonNode targetNode)
    • merge

      public static ObjectNode merge(ObjectNode srcNode, ObjectNode targetNode)
    • merge

      public static ArrayNode merge(ArrayNode srcNode, ArrayNode targetNode)