JSON Diff Compare
Compare two JSON documents and see what actually changed — by path, ignoring key order.
In-browser & private
Structural, not textual: two documents whose keys are in a different order are the same document, and are reported as identical.
—
JSON A (before)
JSON B (after)
Paste two documents and press Compare.
Added —
Removed —
Changed —
Why a structural diff, not a text diff
- Key order is not information in JSON. A text diff of two documents whose fields were serialised in a different order is pages of noise; both are normalised before comparing, so that reports as identical.
- Every difference is a path.
$.user.roles[2]tells you where to look in a way that a line number in a reformatted file does not. - Type changes are called out.
1becoming"1"is the bug that survives review and breaks a consumer — it is reported asnumber → string, not as a value change. - Arrays compare by position. An element inserted at the front shifts everything after it, and that is shown honestly rather than guessed at with a move heuristic.
Comparing something that is not JSON — code, logs, CSV or prose? Use the difference checker, which compares line by line and word by word instead of by path.