JSON Diff
Compare two JSON documents by structure and get the changes as a JSON Patch.
Compare The Data, Not The Formatting
Two JSON documents can hold exactly the same data and still look completely different — keys in another order, different indentation, everything on one line. A text diff drowns in that noise. This tool parses both documents and compares their structure, so the only things reported are values that were added, removed or changed.
Each difference is listed by its path, like $.orders[2].total, with the value before and after. The whole set of changes can be exported as a JSON Patch — the RFC 6902 format that turns the original into the new version, ready for an API or a test fixture.
Key features
- Structural comparison — key order and whitespace never count as changes.
- Paths for every change — added, removed, changed and type-changed values.
- JSON Patch output — RFC 6902 operations in an order that applies cleanly.
- Ignore array order — compare tags and permission lists as collections.
- Number tolerance — ignore floating-point noise between two systems.
This tool runs entirely inside your browser using native Web APIs. Your files and text are never uploaded to a server, never logged and never shared with third parties.
How to use: JSON Diff
- Paste the original JSON
On the left: the older version or the expected response. - Paste the changed JSON
On the right: the newer version or the actual response. - Review the differences
Counts at the top, every change listed by path below. - Copy the patch
Use the JSON Patch in your API call, migration or test.
Technical specifications
| Processing location | Entirely in your browser — no server round trip |
|---|---|
| Data uploaded | None. Files and text never leave your device |
| Price | Free — no account, no trial, no usage cap |
| Category | Developer |
| Works offline | Yes, once the page has loaded |
| Browser support | Chrome 90+, Edge 90+, Firefox 90+, Safari 15+ |
| Interface languages | English, 中文, हिन्दी, Español, العربية |
Frequently asked questions
What is a JSON Patch?
A standard format, RFC 6902, for describing changes to a JSON document as a list of operations — add, remove and replace, each with a JSON Pointer path. Applying the patch to the original produces the changed document.
How are arrays compared?
By position by default: item 0 against item 0, and so on, with extra items reported as added or removed. With Ignore array order, arrays are compared as collections, reporting only the values one side has and the other lacks.
Why is no patch shown with Ignore array order on?
An unordered comparison has no positions, and a JSON Patch needs exact paths to apply. Turn the option off to get a patch.
Is 1 the same as 1.0?
Yes. JSON does not distinguish them; both parse to the same number and are treated as equal. A number and a string containing it, such as 1 and "1", are different and reported as a type change.
Is my data private?
Yes. Both documents are parsed and compared in your browser; nothing is uploaded.