json_merge_preserve(JsonDocument, Patch)
The json_merge_preserve function provides a way to patch a target JSON
document with another JSON document while preserving the content that exists
in the target document.
Keys in JsonDocument are merged if found in Patch. If the same
key exists in both the target and patch file the result will be an array with
the values from both target and patch.
If the
value in Patch is null then the key will be removed in the
target document.
json_merge_preserve('{"a":"b"}', '{"a":"c"}'
-----------------------------------------------------
{"a":["b","c"]}
json_merge_preserve('{"a": [{"b":"c"}]}', '{"a": [1]}'
------------------------------------------------------
{"a":[{"b":"c"},1]}
json_merge_preserve('[1,2]', '{"a":"b", "c":null}'
---------------------------------------------------------------
[1,2,{"a":"b","c":null}]