JSON Diff & Compare
Compare two JSON documents structurally. See added, removed and changed values by path, not as a noisy text diff.
Original
Changed
Ready
Drop a file to load it
About this tool
Compare two JSON documents by structure rather than by text. Reordering keys or reformatting a file produces no differences — only genuine changes to values are reported, each with the path where it occurred.
When you would use it
- Working out what actually changed between two API responses
- Reviewing a configuration change without the noise of reformatting
- Confirming a migration preserved every field
Worked example
A: {"name":"Ada","score":91,"tags":["x"]}
B: {"name":"Ada","score":95,"city":"London"}
3 differences: 1 added, 1 removed, 1 changed ~ score: 91 → 95 - tags: ["x"] + city: "London"
Things worth knowing
- Differences are reported by path, such as
user.roles[1], so you can locate them immediately. - Type changes are called out separately —
"1"becoming1is flagged as a type change, not just a value change. - Array comparison is order-sensitive by default, with an option to ignore ordering when the array is really a set.
Questions
Frequently asked
Why use this instead of a normal text diff?
A text diff reports every reformatted line and every reordered key as a change. A structural diff compares the parsed values, so it only tells you about differences that actually matter.
Is my data uploaded anywhere?
No. Every tool on JSONWorks runs entirely in your browser using JavaScript. Your input is never sent to a server, never logged and never stored. The simplest proof is to disconnect from the internet — the tools keep working. The site does load Google Fonts and a Google Analytics page-view tag, so you will see those two requests in your network tab, but neither receives anything you type or paste.
Does it work offline?
Yes. JSONWorks is installable as a progressive web app and caches itself on first visit, so every tool keeps working without a connection.
Related