# JSON Diff Tool > Compare two JSON objects side-by-side with structural diff highlighting **Category:** Dev **Keywords:** json, diff, compare, json diff, json compare, json difference, api debugging, config diff **URL:** https://complete.tools/json-diff-tool ## 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. --- *Generated from [complete.tools/json-diff-tool](https://complete.tools/json-diff-tool)*