0

JSON Diff Checker

Compare two JSON payloads by structure, not by text: see every added, removed and changed key on its own path, entirely in your browser.

Processing... 0%

Result

Pasting two JSON documents into a normal text-diff tool almost always produces the wrong picture: reformatting, re-indenting, or simply serializing object keys in a different order will light up huge stretches of 'changed' text even when the underlying data is identical. A text diff compares characters and lines; it has no idea that {"a":1,"b":2} and {"b":2,"a":1} mean exactly the same thing.

This tool parses both inputs as JSON first, then recursively walks the two structures the way the data is actually shaped: objects are compared by key name, and arrays by position (index-based array comparison is a deliberate, simpler default here — there is no 'treat this array as an unordered set keyed by an id field' mode). Every difference is reported on its own path, such as user.address.city, and classified as added, removed or changed, with the old and new value shown together so you never have to guess what flipped.

Unchanged paths are hidden by default so a large payload with one small change does not bury it in noise, with a toggle to reveal them again when you want the full picture. The 'sort keys before comparing' option walks and lists object keys in canonical alphabetical order — a JSON object has no meaningful key order to begin with, so two objects with the same keys and values in a different sequence are the same data, and this option makes that comparison, and the resulting list, explicit and deterministic. It is the exact setting behind the sorted and API-response-comparison presets on this tool.

If you need a classic side-by-side line diff for plain text, code, or any content that is not JSON, use the companion Text Diff tool instead — it compares line by line and is the right tool when whitespace and formatting differences actually do matter. This one is for JSON specifically, and, like every tool on this site, it runs entirely in your browser: nothing you paste is ever uploaded anywhere.