JSON Diff & Compare

Paste an original and a modified JSON document to see exactly what changed — every difference is listed with its path, such as features[2] or server.port.

Key order is ignored; array items are compared by position. Legend: + added · − removed · ~ changed
Differences

Output will appear here.

Ctrl + Enter to run

Runs 100% in your browser — your data is never uploaded to our server.

Find every difference between two JSON documents

A line-by-line text diff is noisy for JSON: re-indenting a file or reordering keys produces lots of “changes” that are not real. This tool compares the data. Both documents are parsed and walked together, and each difference is reported with a precise path:

  • + added – the key or array item exists only in the modified document.
  • − removed – it exists only in the original document.
  • ~ changed – it exists in both, but the value or type is different.

Object keys are matched by name, so key order never matters. Array items are compared by position (index 0 with index 0, and so on), which is how most APIs and configuration files treat arrays.

How to compare JSON

  1. Paste the original JSON into the top box and the new version into the bottom box (or upload files).
  2. The differences appear immediately. Use the Text tab for a plain list you can paste into a ticket or pull-request comment.
  3. Use Swap to reverse the direction of the comparison.

Example

Original → Modified

{"version": "1.2.0", "replicas": 3}
{"version": "2.0.0", "replicas": 3, "region": "eu"}

Result

~ version: "1.2.0" → "2.0.0"
+ region: "eu"

Typical uses

  • Reviewing configuration changes before a deployment.
  • Comparing API responses between staging and production.
  • Checking what a migration script changed in exported records.
  • Verifying snapshot or fixture updates in tests.

Frequently asked questions

Does the order of keys matter?

No. Keys are matched by name. Only the order of array items matters.

Can I compare very large files?

Yes, the comparison runs locally. Extremely large documents with many differences may take a moment to render.

How are type changes shown?

If a value changes type — for example from the number 3 to the string "3" — it is shown as changed, with both values.

Is my data uploaded?

No. Both documents stay in your browser.