JSON Compare & Diff
Paste two JSON documents and see exactly what changed: every added, removed and modified value, with its path.
Ctrl+Enter also works. Both documents are compared in your browser and never sent to a server.
Same Data or Not?
A text diff reports every changed character. A JSON diff should report changed data, and nothing else. Here is how this one decides:
| Original | Changed | Verdict | Why |
|---|---|---|---|
| {"a": 1, "b": 2} | {"b": 2, "a": 1} | Same data | Key order means nothing in a JSON object. |
| 19.90 | 19.9 | Same data | One number, two spellings. So are 1e2 and 100. |
| "caf\u00e9" | "café" | Same data | An escape sequence and the character it stands for. |
| 12345678901234567890 | 12345678901234567891 | Different | Through JavaScript's JSON.parse both become 12345678901234567000, and a diff built on it reports no change. |
| 1 | "1" | Different | A number and a string are different values. |
What You Can Do With It
Compare two API responses
Staging against production, before and after a deploy, version 1 against version 2: see which fields appeared, disappeared or changed value.
Review a config change
Package files, feature flags, translation files: paste the old and new version and read the change list instead of a noisy line diff.
Check a test fixture
When a snapshot test fails, compare the expected and actual JSON to find the one value that moved, with a path you can paste into the assertion.
Export the change as JSON Patch
Copy the RFC 6902 operations that turn the first document into the second, ready for fast-json-patch or any compliant library.
Checked by Applying the Patch
A diff can be wrong in two quiet ways: it can miss a change, or point at the wrong index after an insertion. To rule both out, this tool is tested on thousands of generated pairs of documents. For each pair, the JSON Patch it produces is applied to the first document by a separate implementation of RFC 6902, and the result has to equal the second document exactly. A missing change or a wrong position fails that test.
Both documents are read with the same parser as the JSON Formatter and the JSON Viewer, so an invalid file gets the same error, with its line and column and a link to the right JSON error guide.