JSON Diff
Deep-diff two JSON structures and see added, removed, and changed keys grouped by path.
Deep-diff two JSON structures and see added, removed, and changed keys grouped by path.
How to use JSON Diff
- 1
Paste the original JSON into the left input.
- 2
Paste the modified JSON into the right input.
- 3
Review the grouped results: added, removed, and changed entries.
- 4
Read the full path on each entry to locate the change in your source.
- 5
If arrays look fully changed, sort both sides identically and compare again.
Real examples of JSON Diff in action
{"name":"Al","age":30}{"name":"Al","age":31,"city":"NY"}left vs right above
changed: $.age 30 -> 31; added: $.city = "NY"
{"id":7} vs {"id":"7"}changed: $.id 7 (number) -> "7" (string)
Who is JSON Diff for?
Backend developers comparing API responses across versions
QA engineers debugging snapshot and contract test failures
DevOps engineers reviewing config drift before a deploy
Data engineers verifying field parity after a migration
Why use JSON Diff?
- Walks nested objects and arrays recursively to find every difference.
- Groups results clearly into added, removed, and changed for fast scanning.
- Shows the full path ($.user.name) for each change so you can find it instantly.
- Matches object keys by name, so reordered keys do not create false diffs.
- Compares entirely in the browser, so sensitive payloads are never uploaded.
Common use cases
- Compare two versions of an API response to spot what a release actually changed.
- Diff a config file before and after an edit to confirm only intended keys moved.
- Investigate a failing snapshot test by seeing precisely which paths drifted.
- Verify a data migration kept every field by comparing source and target records.
How JSON Diff compares to alternatives
Honest comparison to other popular options — pick the right tool for the job.
| Tool | Main limitation |
|---|---|
| JSONDiff.com | Useful but uploads your input to a server, which is a concern for sensitive payloads |
| git diff on JSON files | Line-based, so it misreports reordered keys as changes and ignores JSON structure |
| jq plus diff in a terminal | Flexible but requires installing jq and chaining commands for a quick comparison |
| JSON Diff | Free, runs in your browser, no sign-up, no watermarks, no file-size limits beyond your device memory. |
Limitations & things to know
- Arrays are compared by index, so inserted or reordered elements can over-report changes
- It does no semantic or fuzzy matching of moved objects, only path and value comparison
About JSON Diff
A JSON diff tool compares two JSON documents and reports exactly what changed, classifying each difference as an added key, a removed key, or a changed value. Eyeballing two JSON blobs side by side is slow and error-prone, especially when they are deeply nested or thousands of lines long. This tool walks both structures recursively and lists every difference by its full path, such as $.user.address.city, so you can see at a glance what moved without scanning the raw text. The comparison follows JSON semantics rather than text semantics, which matters. Object keys are matched by name, not by position, so reordering keys in an object produces no diff. That is correct, because in JSON the order of object members is not significant. Arrays, however, are compared by index: the element at position 0 on the left is compared with position 0 on the right, and so on. This is a common gotcha. If you insert one element at the start of an array, every following element shifts by one index, and an index-based diff reports the whole tail as changed even though the values simply moved. When you care about set membership rather than order, sort both arrays the same way before diffing. Type changes are flagged as changes too: a value of 5 (number) versus the string "5" at the same path is reported as changed, not equal, which catches subtle serialization bugs where a field silently switched type between API versions. The diff is purely structural and value-based; it does not attempt fuzzy or semantic matching of moved objects. Everything runs locally in your browser, so payloads containing tokens, personal data, or internal fields are never uploaded.
Frequently asked questions
Your files never leave your device
Every tool on Xevon Tools runs 100% in your browser. No uploads, no servers, no tracking. Free forever.
Embed JSON Diff on your site
Add this tool to your own website, blog, or internal tool page with one line of code. Free to use, no attribution required (but appreciated).
<iframe src="https://www.xevontools.com/embed/json-diff" width="100%" height="640" style="border:1px solid #e2e8f0;border-radius:12px;" title="JSON Diff — Xevon Tools"></iframe>
