JSON Diff
Compare two JSON documents structurally. See which keys were added, removed, or changed, by full dotted path.
SemanticStructuralClient-sideFree to use
How to use
- Paste both JSONs. Both must be valid JSON.
- Read the change list. Grouped into added, removed, and changed.
Common use cases
- Auditing API response changes
- Reviewing config diffs
- Tracing data migrations
Frequently asked questions
- How is a JSON diff different from a text diff?
- Text diff compares the literal characters, so reordering object keys or changing whitespace shows as a diff. JSON diff parses both inputs into objects first and compares structurally, so cosmetic changes are ignored and only real key/value differences appear.
- How are added, removed, and changed reported?
- Each difference is listed with the full dotted path (e.g. user.address.zip), the kind of change (added / removed / changed), and the old and new values when applicable. Easy to scan as a list.
- How are arrays compared?
- Arrays are compared element by element by index, so reordering an array shows as a series of changes. For arrays of objects with stable IDs, sort both inputs by ID before diffing.
- What happens if one of the inputs is not valid JSON?
- You will get a parse error pointing at the first invalid input. Use the JSON Validator to fix syntax before diffing.
- Does diffing happen in the browser?
- Yes. The diff runs locally using the deep-diff library, so payloads never leave your machine.
Related tools
How to use
- Paste both JSONs. Both must be valid JSON.
- Read the change list. Grouped into added, removed, and changed.
Common use cases
- Auditing API response changes
- Reviewing config diffs
- Tracing data migrations
Frequently asked questions
- How is a JSON diff different from a text diff?
- Text diff compares the literal characters, so reordering object keys or changing whitespace shows as a diff. JSON diff parses both inputs into objects first and compares structurally, so cosmetic changes are ignored and only real key/value differences appear.
- How are added, removed, and changed reported?
- Each difference is listed with the full dotted path (e.g. user.address.zip), the kind of change (added / removed / changed), and the old and new values when applicable. Easy to scan as a list.
- How are arrays compared?
- Arrays are compared element by element by index, so reordering an array shows as a series of changes. For arrays of objects with stable IDs, sort both inputs by ID before diffing.
- What happens if one of the inputs is not valid JSON?
- You will get a parse error pointing at the first invalid input. Use the JSON Validator to fix syntax before diffing.
- Does diffing happen in the browser?
- Yes. The diff runs locally using the deep-diff library, so payloads never leave your machine.