jsontoolskit.org
JSON and JSON Schema utilities, in the browser
Say hi →

JSON Deep Merge

two or more inputs · conflict strategy · conflict log

Deep-merge two or more JSON documents. Pick a conflict strategy — last wins, first wins, concat arrays, merge arrays by index, or fail on conflict. Every conflict is logged below so you can see what got overridden.

Merged output

Paste at least one JSON.

Conflicts

    How to deep-merge

    1. Add 2 or more JSON inputs (the tool starts with two panels; + Add input for more).
    2. Pick Conflict strategy:
      • Last wins (default) — right-hand input overrides.
      • First wins — left-hand input keeps its value.
      • Concat arrays — when both sides are arrays, concatenate.
      • Merge arrays by index — recurse into arrays element-by-element.
      • Fail on conflict — surface every conflict for manual resolution.
    3. The output panel shows the merged JSON. Conflicts are logged below — useful for understanding what got overridden.

    FAQ

    What is the difference vs json-merge-patch?

    json-merge-patch is RFC 7396, where null means "delete this key". This tool is straight deep-merge — null is treated as a value.

    Concat arrays creates duplicates — is that a bug?

    No — it's the spec. Use Merge arrays by index if you want positional merge, or pre-dedupe before merging.

    Will it work offline?

    Yes.