JSON Diff Checker

Compare two JSON objects and see exactly what was added, removed, or changed.

Free No signup Deep comparison Runs in browser
Original JSON (A)
Modified JSON (B)
+ 0 added 0 removed ~ 0 changed
Diff result
Paste two JSON objects above and click Compare
Added
Removed
Changed
Unchanged
Advertisement

JSON Diff — Finding Changes Between API Responses and Config Files

JSON diff tools answer a simple but critical question: what exactly changed between two JSON documents? Whether you're comparing API responses between environments, tracking configuration changes, debugging why a deployment broke, or reviewing data migrations, seeing an exact diff is faster and more reliable than eyeballing two JSON blobs.

Common use cases for JSON diffing

Comparing dev vs production API responses to find environment-specific bugs. Reviewing changes in configuration files between versions. Verifying that a data migration preserved all fields correctly. Debugging why a test is failing after a dependency update. Tracking what changed in a webhook payload between two events. All of these become trivial with a structured diff.

How structured JSON diff works

Unlike text diff tools that compare line by line, a JSON diff compares structure. It recursively walks both objects, matching keys at each level. A key in B but not A is "added." A key in A but not B is "removed." A key in both but with different values is "changed." This gives you semantic changes, not formatting differences — a reformatted JSON with the same data shows zero differences.

Reading the diff output

Green lines with + prefix are additions — fields that exist in the new version but not the original. Red lines with - are removals. Orange lines with ~ show changes with both the old and new value on the same line. Gray lines are unchanged fields included for context. The summary at the top counts total additions, removals, and changes.

Frequently asked questions

How does JSON diff work?
The tool recursively compares every key and value in both JSON objects. Keys that exist in B but not A are marked "added". Keys in A but not B are "removed". Keys in both but with different values are "changed". Nested objects are diffed recursively.
Does this handle nested JSON?
Yes. The diff is recursive — it compares nested objects and arrays at any depth, showing the full key path like address.city for deeply nested changes.
How are array differences shown?
Arrays are compared index by index. If array items are objects with an id field, matching is done by ID. Otherwise, items at the same index are compared directly.
Is my JSON data safe?
Yes. All comparison happens locally in your browser. No data is ever sent to a server.
Can I compare JSON API responses?
Yes — this is the most common use case. Paste the response from two different environments (dev vs prod, v1 vs v2) to see exactly what changed.
What if the JSON is invalid?
The tool validates both inputs before comparing. If either is invalid JSON, it shows the exact parse error. Use the JSON Formatter to fix syntax errors first.