JSON Merge
The JSON merge tool combines two documents into one. By default it merges recursively, so nested objects are joined rather than replaced wholesale, and where both documents set the same value the second wins. Arrays can be replaced, joined end to end, or joined with duplicates removed.
Your result will appear here.
Not sure where to start? Use Load example.
Results update automatically and are calculated on your device. Nothing you type is sent to a server.
Runs in your browser. Processing happens entirely in your browser. Nothing you enter is sent to Delimiter.live.
How to use the JSON Merge
- Paste the base document into the first box.
- Paste the document whose values should take priority into the second.
- Leave recursive merging on to combine nested objects; turn it off to replace top-level keys outright.
- Choose how arrays should behave, then copy or download the merged result.
Example
{"a": 1, "b": {"x": 1}}
{"b": {"y": 2}}
{
"a": 1,
"b": {
"x": 1,
"y": 2
}
}
Common use cases
- Applying an environment-specific override on top of a base configuration.
- Combining a default settings file with a user’s customisations.
- Merging two partial API fixtures into one complete test payload.
- Layering a patch document over a manifest before deploying it.
Limitations and things to watch for
- Where both documents set the same scalar value, the second always wins. There is no conflict prompt — use the JSON Diff tool first if you need to see what will be overwritten.
- With recursive merging off, a nested object in the second document replaces the first one entirely rather than being combined with it.
- Removing a key is not possible: merging only adds and overwrites. A null in the second document sets the value to null rather than deleting the key.