Structural Comparison
Differences are reported by key path and value, ignoring key order and whitespace — so cosmetic re-serialisation does not produce false positives the way text diff does.
500+ fast, free tools. Most run in your browser only; Image & PDF tools upload files to the backend when you run them.
Compare two JSON values structurally. See added, removed, and changed keys with color-coded paths and values.
JSON Diff is a structural comparison tool that walks two JSON values in parallel and reports every difference as a keyed path with a type (added, removed, or changed) and the corresponding values. Unlike textual diff tools that compare characters and report mismatches when keys are reordered, structural diff treats {a:1,b:2} and {b:2,a:1} as identical — only meaningful key/value differences appear. Each reported change is annotated with its full path (bracket notation for arrays, dot notation for objects), making it easy to locate in source. Color coding (green for added, red for removed, orange for changed) and aggregate counts at the top give a fast summary. The tool runs entirely in your browser and is suitable for comparing API responses, configuration snapshots, fixtures in tests, and JSON exports.
Differences are reported by key path and value, ignoring key order and whitespace — so cosmetic re-serialisation does not produce false positives the way text diff does.
Every change shows the full path (e.g. items[0].price) so you can navigate directly to the differing field in your source JSON, even in deeply nested structures.
Added, removed, and changed entries each have their own color (green, red, orange) and symbol (+, -, ~), so the type of change is visible at a glance.
Edits to either side trigger a debounced re-comparison automatically — adjust an expected value and see the diff update without clicking a button.
Summary line at the top shows totals per category, useful for triaging large diffs at a glance.
Both inputs and the comparison logic stay in your tab — API responses with tokens, fixtures with PII, and config dumps with secrets never leave your machine.
Input: A: {"name":"Alice","age":30} B: {"name":"Alice","age":31,"email":"a@b"}
Output: + Added: 1 ~ Changed: 1 ~ age: 30 → 31 + email: "a@b"
Input: A: {"tags":["x","y","z"]} B: {"tags":["x","y","q"]}
Output: ~ Changed: 1 ~ tags[2]: "z" → "q"
Input: A: {"a":1,"b":2} B: {"b":2,"a":1}
Output: Both JSON values are structurally identical.