1234567891011121314151617181920212223242526 |
- package runtime
- import (
- "encoding/json"
- "github.com/apapsch/go-jsonmerge/v2"
- )
- // JsonMerge merges two JSON representation into a single object. `data` is the
- // existing representation and `patch` is the new data to be merged in
- func JsonMerge(data, patch json.RawMessage) (json.RawMessage, error) {
- merger := jsonmerge.Merger{
- CopyNonexistent: true,
- }
- if data == nil {
- data = []byte(`{}`)
- }
- if patch == nil {
- patch = []byte(`{}`)
- }
- merged, err := merger.MergeBytes(data, patch)
- if err != nil {
- return nil, err
- }
- return merged, nil
- }
|