ModernCalcs

JSON Diff

Deep-compare two JSON objects. Differences are shown as added (+), removed (−), or changed (~) with the full dot-notation path to each change.

JSON A (original)

JSON B (modified)

Diff Result

6 changes
~ age: 30 → 31
~ role: "admin" → "superadmin"
− tags[1]: "viewer"
~ address.city: "New York" → "Boston"
~ address.zip: "10001" → "02101"
+ verified: true

JSON Diff: Compare API Responses and Config Changes

Spotting differences between two JSON payloads is a common debugging task — comparing API versions, reviewing config changes, or checking what changed between two webhook deliveries. This tool performs a deep recursive diff and lists every change with its full dot-notation path.

Frequently Asked Questions

What do the +, −, and ~ symbols mean?

+ means the key exists in B but not in A (added). − means the key exists in A but not in B (removed). ~ means the key exists in both but the value changed.

How are nested objects diffed?

The diff recurses into nested objects and reports the full dot-notation path to each change. For example, `address.city: "New York" → "Boston"` shows exactly which nested field changed.

How are arrays diffed?

Arrays are diffed by index. If A has 3 items and B has 2, the third item shows as removed at index [2]. There is no semantic 'move' detection — it is purely index-based.

Does it diff array item order?

Yes — array comparison is positional. Reordering array elements will show as changes at each affected index, even if the same items are present.

What if both JSONs are identical?

If no differences are found, the result shows 'Objects are identical' in green.

Is the diff data sent to a server?

No. The entire comparison runs in your browser using JavaScript. Neither JSON A nor JSON B leaves your machine.