JSON Diff
Compare two JSON documents side-by-side and instantly see what was added, removed, or changed.
What is JSON Diff?
JSON Diff is a tool that compares two JSON documents and presents the differences in a structured, readable format. Rather than manually scanning two blobs of text for discrepancies, the diff engine recursively walks both JSON trees and categorises every key as added, removed, changed, or unchanged.
This is invaluable when auditing API contract changes between software versions, reviewing configuration file updates in code review, or debugging unexpected data mutations in a production system.
How the Diff Works
The comparison is fully recursive. For each key that appears in either document, the engine:
- Marks it added (+) if it only exists in B.
- Marks it removed (−) if it only exists in A.
- Marks it changed (~) if it exists in both but has a different value.
- Recurses into nested objects to provide granular field-level diffs instead of marking the entire object as changed.
- Compares arrays element-by-element using their serialized form.
Common Use Cases
- API versioning — compare v1 and v2 response shapes to spot breaking changes before updating client code.
- Config review — diff
package.json,tsconfig.json, orappsettings.jsonbetween branches. - Data pipeline debugging — compare input and output JSON from a transformation step to verify correctness.
- Feature flags — spot which flags changed between a staging and production deploy.
- Schema evolution — track which fields were added or removed as a JSON Schema evolves over time.
Frequently Asked Questions
Is this diff tool free?
Yes — completely free, no account, no limits.
Is my data kept private?
The diff is computed entirely in your browser. Neither document is ever uploaded to a server.
Does it handle deeply nested JSON?
Yes. The engine recurses into nested objects at any depth, rendering diffs indented to reflect the hierarchy.
What if the root is an array?
Array roots are compared element-by-element by position. Objects inside arrays are recursed into and diffed at the field level.