@compassdigital/mergejson

Recursively merge json documents in a new one.

Usage no npm install needed!

<script type="module">
  import compassdigitalMergejson from 'https://cdn.skypack.dev/@compassdigital/mergejson';
</script>

README

Recursively merge json documents in a new one.

Node.js Usage

npm install @compassdigital/mergejson --save
var mergejson = require('@compassdigital/mergejson')

var dominant = {
    '1':'hello',
    '3':{
        '3.1': 'jhon',
        '3.2': 'doe'
    }
}
var recessive = {
    '2': 'world',
    '3':{
        '3.1': 'jhon',
        '3.2': 'lennon'
    }
}

console.log(mergejson(dominant, recessive));
// -> {'1': 'hello', '2': 'world', '3': {'3.1': 'jhon', '3.2': 'doe'}} 


var one = {
    '1':'hello',
    '4':{
        '4.1': 'jhon',
        '4.2': 'doe'
    }
}
var two = {
    '2': 'world',
    '4':{
        '4.1': 'jhon',
        '4.2': 'lennon',
        '4.3': 'from two'
    }
}

var three = {
    '3': '!',
    '4':{
        '4.1': 'jhon',
        '4.2': 'lennon',
        '4.3': 'from three'
    }
}

console.log(mergejson(one, two, three));
// -> {'1': 'hello', '2': 'world', '3': '!', '4': {'4.1': 'jhon', '4.2': 'doe', '4.3': 'from two'}} 

console.log(mergejson([one, two, three]));
// -> {'1': 'hello', '2': 'world', '3': '!', '4': {'4.1': 'jhon', '4.2': 'doe', '4.3': 'from two'}} 

Terminal Usage

npm install -g mergejson
mergejson {\"1\":\"one\"} {\"2\":\"two\"} {\"3\":\"three\"}
# ->
#
# {
#   '1': 'one',
#   '2': 'two',
#   '3': 'three'
# }

mergejson $(cat one.json) $(cat two.json) $(cat three.json)
# ->
#
# {
#   '1': 'one',
#   '2': 'two',
#   '3': 'three'
# }