lijian 48c2e0e9f9 依赖更新为 go mod hai 1 ano
..
.editorconfig 48c2e0e9f9 依赖更新为 go mod hai 1 ano
.gitattributes 48c2e0e9f9 依赖更新为 go mod hai 1 ano
.gitignore 48c2e0e9f9 依赖更新为 go mod hai 1 ano
.gitlab-ci.yml 48c2e0e9f9 依赖更新为 go mod hai 1 ano
.travis.yml 48c2e0e9f9 依赖更新为 go mod hai 1 ano
LICENSE 29b1fcc3ab udpate vendor %!s(int64=2) %!d(string=hai) anos
README.md 29b1fcc3ab udpate vendor %!s(int64=2) %!d(string=hai) anos
build.cmd 29b1fcc3ab udpate vendor %!s(int64=2) %!d(string=hai) anos
build.sh 48c2e0e9f9 依赖更新为 go mod hai 1 ano
doc.go 29b1fcc3ab udpate vendor %!s(int64=2) %!d(string=hai) anos
merge.go 29b1fcc3ab udpate vendor %!s(int64=2) %!d(string=hai) anos

README.md

go-jsonmerge

Build Status GoDoc

GO library for merging JSON objects

Original document

{  
  "number": 1,
  "string": "value",
  "object": {
    "number": 1,
    "string": "value",
    "nested object": {
      "number": 2
    },
    "array": [1, 2, 3],
    "partial_array": [1, 2, 3]
  }
}

Patch

{  
  "number": 2,
  "string": "value1",
  "nonexitent": "woot",
  "object": {
    "number": 3,
    "string": "value2",
    "nested object": {
      "number": 4
    },
    "array": [3, 2, 1],
    "partial_array": {
      "1": 4
    }
  }
}

Result

{  
  "number": 2,
  "string": "value1",
  "object": {
    "number": 3,
    "string": "value2",
    "nested object": {
      "number": 4
    },
    "array": [3, 2, 1],
    "partial_array": [1, 4, 3]
  }
}

Commandline Tool

$ go get -u github.com/RaveNoX/go-jsonmerge/cmd/jsonmerge
$ jsonmerge [options] <patch.json> <glob1.json> <glob2.json>...<globN.json>
# For help
$ jsonmerge -h

Development

# Install depencencies
./init.sh

# Build
./build.sh

License

MIT