JSON Diff — Compare Two JSON Files
Paste two JSON documents to see exactly what changed, ignoring key order and formatting — it runs in your browser, so nothing is sent anywhere
Processed in your browser — nothing is uploaded.
About this tool
Compare two JSON documents and see what actually changed, without reading them line by line yourself. Both sides are canonicalised first — keys sorted at every level, formatting normalised — then compared line by line: green for additions, red for removals, with a count of each.
What developers use it for:
- Diffing an API response before and after a change, to confirm the data contract didn't shift by accident
- Chasing a bug that only happens in one environment, by comparing a staging response against production
- Checking configuration —
package.json, service config, feature flags — between two environments - Reviewing a partner's payload when the structure changed but the docs haven't caught up
The structural understanding is the difference from a plain text diff. With a generic text comparison, reordered keys or a change in indentation are all reported as differences, and the one field that really changed disappears in the noise. Here both sides are normalised first, so only real value changes remain.
If either side isn't valid JSON, you're told exactly which one, so there's no guessing. And because it all runs in your browser with nothing sent anywhere, pasting real responses or customer data is safe. Free, and no sign-up.
How to use
- 1Paste the first JSON on the left — the version before your change, or one server's response
- 2Paste the second JSON on the right — the version after, or the other server's response
- 3Read the comparison below: green lines were added, red lines were removed
- 4If one side isn't valid JSON, the tool tells you which side so you can fix it directly
Frequently asked questions
- Why isn't a different key order reported as a difference?
- Because JSON object key order carries no meaning. Both sides are canonicalised — keys sorted at every level and re-indented — before comparing, so you only see differences that actually matter, not artefacts of ordering or whitespace.
- How is this different from a plain text diff?
- A text diff flags everything: indentation, line breaks, key order. The real change drowns in noise. This tool understands the structure first, so what's left is the values that genuinely changed.
- Is my data sent to a server?
- No. The comparison runs entirely in your browser and nothing leaves your device, so you can paste responses from real systems or payloads containing customer data.
- What about arrays in a different order?
- Array order is meaningful in JSON, so two arrays with the same members in a different sequence are reported as different — which is the semantically correct answer.
- How large can the documents be?
- Since it runs locally, that depends on your machine. Payloads in the hundreds of kilobytes compare comfortably; beyond that, trim to the part you care about.