Gearboxly

Free JSON Diff

Compare two JSON documents and see what changed.

Feedback Report issue
Loading tool…

What is the JSON Diff?

Two JSON payloads that should be identical rarely announce their differences — a flipped boolean, a renamed key, an extra element buried three levels down. Eyeballing them line by line is slow and easy to get wrong, especially once the objects are large.

This JSON diff tool compares two documents structurally and tells you exactly what was added, removed or changed, and where.

Last updated: Aug 13, 2026

What does this tool do?

You paste an original and a changed JSON document, and the tool parses both and walks them together.

It matches object keys and array indexes, then lists every difference with its path — additions, removals and changed values — ignoring cosmetic differences like key order.

Key features

Structural diff

Compares by keys and indexes, not text.

Path for each change

Shows exactly where it differs.

Add / remove / change

Classifies every difference.

Order-insensitive keys

Reordering keys isn't a change.

Private

Runs in your browser — nothing uploaded.

Example

Input
{ "age": 36 } vs { "age": 37, "city": "Austin" }
Processing
The tool compares the two documents key by key.
Output
changed age: 36 → 37; added city: "Austin".

Common use cases

  • DevelopersSpot what changed between API responses.
  • QA engineersCompare expected vs actual JSON.
  • Backend engineersDiff config or payload versions.
  • Data engineersCheck records before and after a transform.
  • ReviewersUnderstand a JSON change in a PR.
  • IntegratorsDebug why two payloads behave differently.
  • Support teamsCompare a working vs broken config.
  • Anyone with two JSONsFind the differences fast.

Benefits

  • It finds differences you'd miss by eye.
  • It pinpoints each change with a path.
  • It ignores key order, so only real changes show.
  • It keeps your data in the browser.

Tips

  • Format both documents first if you're also eyeballing them.
  • Key order doesn't matter — focus on the reported changes.
  • Arrays are compared by position, so inserts shift later indexes.
  • For array-of-objects, a stable sort before diffing reduces noise.
  • Use it to build assertions for tests from real diffs.
  • Large diffs are easier to scan by path prefix.
  • Validate each side is real JSON if comparison fails.
  • Keep the original handy to confirm intended changes.

Common mistakes to avoid

Expecting array reorders to be smart

Fix: Arrays compare by index; sort both sides first if order isn't meaningful.

Comparing invalid JSON

Fix: Fix syntax on both sides — the tool needs valid JSON to parse.

Worrying about key order

Fix: Key order is ignored; only value and structure changes are reported.

Diffing huge unformatted blobs by eye

Fix: Let the tool report changes by path instead of scanning manually.

How it works

  1. 1

    Paste both versions

    Original on the left, changed on the right.

  2. 2

    Compare

    It diffs them key by key.

  3. 3

    Review changes

    See additions, removals and edits by path.

Frequently asked questions

It walks both documents recursively, matching object keys and array indexes, and reports each addition, removal and changed value with its path.

No. Objects are compared by key, so reordering keys isn't reported as a change.

It parses both documents and walks them recursively, matching object keys and array indexes, then reports each difference with its path.

No. Objects are compared by key, so reordering keys is not reported as a change.

Arrays are compared by index, so an inserted element shifts and changes the positions after it.

A key present in one document but not the other (added/removed), or a differing value at the same path (changed).

It runs in your browser, so very large documents depend on your device, but typical payloads compare instantly.

No. Both documents stay in your browser.

Conclusion

A JSON diff tool turns 'something changed' into a precise list of what and where, so you can review changes with confidence. Pair it with the JSON formatter to tidy each side first.

Related tools