Tools / JSON Diff
JSON Diff
Compare two JSON documents side by side — structural differences with exact paths, not line noise. Runs entirely in your browser; nothing is uploaded.
3 differences found (1 added, 0 removed, 2 changed).
- /limits/requestsPerMinchanged-60+120
- /rolechanged-analyst+senior analyst
- /tags/2added+ systems
// About this tool
JSON Diff
This tool compares two JSON documents structurally rather than line by line. Paste an original and a modified version, and every difference is reported with the exact path where it occurred — key order and formatting differences are ignored, so you see what actually changed.
Differences come in three kinds: added (a key or array element that didn't exist before), removed (one that disappeared), and changed (a value that was replaced). Each result also includes the equivalent RFC 6902 JSON Patch, ready to apply programmatically.
Everything runs locally in your browser — your JSON is never uploaded, which makes it safe to compare real API payloads, configs, and schema drafts.
// When to use it
Review a config change before merging
Compare the old and new versions of a config file and see exactly which keys changed — not just which lines moved.
Check what an API returned vs. what you expected
Paste the expected response and the actual response; the diff shows every field that's missing, extra, or different, with its path.
Track drift across environments
Compare the same JSON from staging and production to catch values that silently diverged — permissions, limits, endpoints.
// Questions
Is my JSON uploaded to a server?
No. The diff runs entirely in your browser via JavaScript. Nothing you paste is sent anywhere, which makes it safe for real payloads and internal configs.
Does JSON Diff care about key order or formatting?
No. Comparison is semantic: objects are matched by property name and arrays are aligned on their contents, so reordering keys or reformatting whitespace produces no differences.
What does the path in a result mean?
It's an RFC 6901 JSON Pointer locating the difference inside the document — for example /user/email or /items/0/name. The same path form works with the exported JSON Patch.
What is the JSON Patch export?
An RFC 6902 patch: an array of add/remove/replace operations that transforms the original document into the modified one. It can be applied with any RFC 6902 library.
How are arrays compared?
Arrays are aligned with a longest-common-subsequence match on element contents, so a single inserted element is reported as one addition rather than a cascade of changes. Elements whose stable keys match but whose values differ are reported as changed.
// Related tools