JSON Diff Compare

Compare two JSON documents and see what actually changed — by path, ignoring key order.

In-browser & private
Advertisement

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. 1 becoming "1" is the bug that survives review and breaks a consumer — it is reported as number → 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.

More free tools