complete.tools

JSON Diff Tool

Compare two JSON objects side-by-side with structural diff highlighting

What this tool does

The JSON Diff Tool compares two JSON objects and shows exactly what changed between them. It highlights added keys, removed keys, and keys whose values changed, making it easy to spot differences at a glance.

Paste your original JSON in the left panel and the modified version in the right panel. Click Compare to get a full structural diff with counts for each change type.

How the diff works

The tool performs a deep structural comparison of two JSON objects:

- **Added**: Keys present in JSON B but not in JSON A - **Removed**: Keys present in JSON A but not in JSON B - **Changed**: Keys present in both, but with different values - **Unchanged**: Keys present in both with identical values

Nested objects are compared recursively. Each key is shown with its full dot-notation path (e.g., \`user.address.city\`) so you can immediately locate any change in a deeply nested structure.

Common use cases

- **API debugging**: Compare request and response payloads to catch unexpected changes - **Config management**: See what changed between two versions of a configuration file - **Database records**: Compare two versions of a JSON document stored in a database - **Feature flags**: Diff flag configurations before and after a deployment - **Test fixtures**: Verify test data matches expected output by comparing JSON snapshots

How to use

1. Paste your original JSON into the **JSON A** panel 2. Paste the modified JSON into the **JSON B** panel 3. Click **Compare JSON** 4. Review the summary (added, removed, changed, unchanged counts) 5. Scroll through the diff to see each change 6. Toggle **Show unchanged** to include or hide identical keys 7. Click **Copy Diff** to copy the diff summary to your clipboard

FAQs

Q: Does this tool support arrays? A: Yes. Arrays are compared by value. If the serialized content differs, the entry is marked as "changed." Deep array diffing (index-by-index) is not supported; the full array value is shown.

Q: How deep does the recursive comparison go? A: All the way. There is no nesting depth limit. Every key at every level is compared.

Q: Is my JSON data sent to a server? A: No. All comparison happens entirely in your browser. Your JSON never leaves your device.

Q: What if my JSON is invalid? A: The tool will show an error message identifying which side failed to parse.

Q: Can I compare JSON arrays at the top level? A: Yes. Top-level arrays are compared by serialized value and shown as a single "root" entry.