JSON Diff Checker
Compare two JSON objects online and see every difference — added, removed, and changed values — with exact dot-notation paths. Deep recursive comparison across all nesting levels.
About the JSON Diff Checker
The DevToolHeaven JSON Diff Checker performs a deep comparison of two JSON objects and clearly shows every difference — added keys, removed keys, and changed values — with the exact dot-notation path to each change. Paste JSON A (original) in the left panel and JSON B (modified) in the right panel, then click Compare.
The diff algorithm performs a recursive deep comparison, traversing every key at every nesting level. Added keys (in B but not A) are shown in green with a + prefix. Removed keys (in A but not B) are shown in red with a - prefix. Changed values (same key, different value) are shown in amber with both the old and new value displayed side by side.
Each difference is reported with its full dot-notation path — for example user.address.city or products[2].price — so you can immediately locate the change in your data structure without manually searching both documents.
This tool is essential for comparing API responses across versions to verify nothing broke, checking that two systems are returning identical data, auditing configuration drift between environments (development, staging, production), reviewing the output of a data migration or transformation, and detecting unexpected changes in JSON test fixtures.
The Ignore Array Order option lets you compare arrays by content rather than position — useful when comparing API responses where the server may return items in any order.
All processing is client-side — your data never leaves your browser. It is safe to paste sensitive API responses, authentication payloads, or proprietary configuration data.
Frequently Asked Questions
The JSON Diff Checker compares two JSON objects and highlights every difference between them — added keys, removed keys, and changed values. Each difference shows the exact path to the changed property using dot notation.
Green items with a + sign are keys that were added in JSON B but do not exist in JSON A. Red items with a - sign are keys that exist in JSON A but were removed in JSON B. Yellow/amber items show keys that exist in both but have different values.
When enabled, arrays are compared regardless of the order of their elements. So ["a","b","c"] and ["c","a","b"] would be considered identical. When disabled (default), array order matters and any difference in order is reported as a change.
Yes. The diff checker performs a deep recursive comparison of all nested objects and arrays. Differences are reported using dot notation paths like user.address.city so you can pinpoint exactly where changes occurred.
Yes. You can paste JSON arrays directly — the tool handles both arrays and objects at the root level. Array element differences are reported by their index.
Yes. All comparison happens entirely in your browser using JavaScript. No data is sent to any server, stored, or logged. It is safe to paste sensitive JSON data.
No. The diff compares by key name, not position. {"a":1,"b":2} and {"b":2,"a":1} are considered identical because JSON objects are unordered by specification. Only changes in values, added keys, or removed keys are reported as differences.
Paste the old API response in JSON A and the new response in JSON B. The diff shows every added key (new fields), removed key (potentially breaking), and changed value (type or value changes). This is useful for spotting unintended changes between API versions before deployment.
Yes. Paste the contents of both config files and the diff immediately shows what changed — perfect for reviewing config changes before deploying, or comparing development and production configs to find environment-specific differences.
Dot notation shows the full path to a changed property using dots to separate levels. For example, "user.address.city" means the city property inside the address object inside the user object. This makes it immediately clear where a change is located, no matter how deeply nested it is.
Arrays of objects are compared element by element at matching indexes. If objects are in a different order between the two JSONs, they will show as changed even if the content is the same. Enable Ignore Array Order to compare arrays by content regardless of position.