Developer Tools
JSON Diff Viewer - Compare Two JSON Documents
Compare two JSON objects side-by-side. Instantly see added, removed, changed, and unchanged keys - with support for deeply nested structures.
"Alice""Alice"30to31"admin""New York"to"Boston""10001"to"02101""alice@example.com"What is a JSON diff?
A JSON diff compares two JSON documents and highlights exactly which keys were added, removed, changed, or left unchanged. Unlike a plain text diff, a JSON diff understands the structure of the data, recursing into nested objects and arrays instead of just comparing raw lines.
How to use this tool
- Paste your original JSON into the left editor.
- Paste the modified JSON into the right editor.
- The diff tree updates instantly as you type.
- Toggle Hide unchanged to focus on what changed.
Status indicators
- + added: The key exists only in the right document.
- − removed: The key exists only in the left document.
- ~ changed: The key exists in both, but the value differs.
- ⚡ type: The key exists in both, but the value's type changed (e.g. number -> string).
Semantic vs. syntactic diff
A plain text diff treats JSON as lines of text and reports line-level changes. If a large JSON object is reformatted (different indentation, key reordering), a text diff will show almost everything as changed - even when the actual data is identical. A semantic JSON diff compares parsed values, so reformatting and key reordering are silently handled.
Deep equality and array order
JSON arrays are ordered sequences: ["a","b"] and
["b","a"] are different values. This tool treats them as different, which is the correct
JSON-spec behavior. Some diff tools offer an "ignore array order" option for cases where arrays
represent unordered sets (e.g., a list of tags).
Common use cases
- Comparing API responses between environments (dev vs. prod)
- Reviewing configuration file changes
- Debugging why a test fixture no longer matches
- Auditing changes to JSON-based data exports