JSON Diff
Compare two JSON documents and see exactly what changed.
Compare two JSON files online — actually useful diff output
The JSON diff tool compares two documents and tells you exactly what
changed: which keys were added, removed, modified, and where. The
output is a flat list of paths (e.g. user.address.city)
so you can copy them into a Jira ticket, a code review comment, or a
debug log without anyone having to squint at two giant blobs side by
side.
Why a JSON-aware diff beats a text diff
A line diff (the kind git diff gives you) treats JSON as
text, so it gets confused by reordered keys, formatting changes, and
trailing commas. Adding a single field can blow up into a 200-line
diff because every subsequent line shifts. A JSON-aware diff parses
both documents into objects and compares them structurally,
so it ignores whitespace and key order while catching real semantic
changes — added fields, removed fields, type changes, value changes.
Options that match real-world API testing
-
Ignore array order — useful for unordered
collections like tags or permissions where
["read","write"]and["write","read"]should be considered equal. - Ignore key order — sorts keys alphabetically before diffing so two endpoints that serialize fields in different orders aren't reported as different.
Use cases
- API regression tests — compare a recorded baseline response with the current production response.
-
Config drift — diff
config.jsonacross two environments to find unexpected overrides. - GraphQL response validation — make sure a refactor didn't change the shape of a response.
- Database export comparisons — compare two seed files before pushing.
Output format
Every changed field is shown with a sigil and a JSON path:
+ user.email: "alice@new.com"
- user.email: "alice@old.com"
~ user.age: 30 → 31
+ user.permissions[2]: "admin"
Plus (+) means added in B, minus (-) means
removed from A, tilde (~) means the value changed. The
status badge shows the totals (+3 -1 ~2) at a glance.
Privacy
Both inputs stay in your browser. The tool does not POST to any server, does not log payloads, and does not load any third-party scripts. Safe to paste production JSON.