Skip to content
littlekit.app
All tools

Merge JSON

Combine JSON documents with live conflict previews, deep or shallow merging, and explicit array rules.

Source
Source

Matching objects merge recursively. Arrays are replaced by incoming arrays. Null stays null.

1Added paths
2Changed paths
0Removed paths
Merge preview
Merged JSON preview
{
  "theme": {
    "mode": "dark",
    "accent": "blue"
  },
  "plugins": [
    "export"
  ],
  "autosave": true,
  "welcome": "Hello"
}
Processed on your device

How it works & useful details

How it works

Incoming values win conflicts. Deep mode merges matching objects recursively and uses your array policy; shallow mode replaces matching values as a whole. A root array follows the array policy. Concatenation preserves order and duplicates. Null is an ordinary value, not deletion. This is a configurable merge, not RFC7396 Merge Patch.

Limits & privacy

Up to 1,000,000 characters, 50,000 values and 64 levels. Live previews pause above 40,000 characters; run the tool to process the full supported input. Imported files must be UTF-8 and under 1 MB. Your data stays on this device.

Numbers use JavaScript decimal precision. Unsupported large integers are rejected; quote identifiers to keep all digits. Duplicate object names keep their last value. Transforms preserve data, not source whitespace or number spelling.

Paths use JSON Pointer: an empty path selects the root, ~0 escapes a tilde, and ~1 escapes a slash.