Compare JSON structurally by key path, on-device. See additions, removals, changes & type flips. A private JSON diff tool.
Users
3
−1 in 30 days
Rating
0.0 / 5
unchanged in 30 days
Ratings
0
0 in 30 days
Store rank
#343K
#265K among extensions
Version
0.1.1
updated 3 Aug 2026
Users
monthly, 3 months
Latest, 15 Oct 2026:3 usersMove the mouse over the chart for any month
Ratings count
monthly, 3 months
Latest, 15 Oct 2026:0 ratingsMove the mouse over the chart for any month
The Chrome Web Store rounds user counts down to the leading digit, so the user line moves in steps. The ratings count is exact and is the better signal of real adoption.
About JSON Diff: Structural JSON Compare Tool
JSON diff. Compare JSON structurally, on-device
This is a JSON diff tool that reads by key path, not by line. Paste two JSON
documents into this JSON compare tool and it tells you what actually changed
*structurally*: which key paths were added, which were removed, which values
changed, and where a type flipped.
That distinction is the whole point. Reformat a JSON payload from 2-space to
4-space indentation and a line diff screams about every single line, though
nothing changed. Reorder two keys and it lights up, though nothing changed.
Minify it and you get one unreadable 4,000-character line. This tool compares
the *parsed values*, so it is whitespace-blind and key-order-blind by
construction. There is no text left for it to be distracted by. It reports
by key path (`$.customer.tier`, `$.items[0].qty`), the way you actually think
about a payload.
PRIVATE BY DESIGN: WHY THIS MATTERS HERE
API responses routinely contain customer records, access tokens, and PII.
Pasting one into a random online JSON compare tool means handing that payload
to a third-party server that may log it. This extension is a paste-mode
popup: the JSON you paste never leaves your browser. It never reads the
active tab or any page content, requests no host permissions, and injects no
scripts. Every bit of parsing and comparison happens locally, in the popup.
This extension collects no data of any kind: no analytics, no tracking, no
telemetry, and no account is ever required to compare two documents. The only
network traffic it ever makes is a purchase-verification check with
ExtensionPay if you choose to upgrade.
WHAT IT REPORTS, PER KEY PATH
- ADDED: the path is absent in A, present in B.
- REMOVED: present in A, absent in B.
- CHANGED: present in both, same type, different value.
- TYPE-CHANGED: present in both, different type (`1` → `"1"`, `null` → `{}`).
This is the one that silently breaks a client, and the one a line diff
buries.
- NUMBER-FORMAT: both numbers, numerically equal, written differently
(`1` → `1.0`, `1e3` → `1000`). Worth knowing when a serializer changes; not
dishonestly reported as a value change.
BUILT TO GET THE HARD PARTS RIGHT
- Type discipline: `1`, `"1"`, and `true` are never treated as equal. (In
JavaScript, `1 == "1"` and `1 == true` are both true; that sloppiness is
kept out of the engine entirely.)
- `null` is a value, not absence: a key present with value `null` is NOT the
same as a missing key, and the diff says which.
- Arrays compare index-wise by default (position matters), and the popup says
so plainly on screen. A diff that silently guesses is worse than one that
states its rule.
- Duplicate keys in your input are detected and warned about. Every JSON
parser silently keeps only the last one. That is real, invisible data loss
that nothing else tells you about.
- Unparseable input gets a clear error naming the line and column, and no diff
at all, never a silently wrong result.
- Deep nesting and large pastes are handled without freezing or crashing the
popup, with limits stated honestly when they are reached.
HONEST ABOUT SCOPE
This tool compares two JSON documents' structure. It does not validate against
a JSON Schema, does not fetch URLs, and does not connect to any API. You paste
the two payloads in yourself. Each document is capped at 1,000,000 characters
and 512 levels of nesting to keep the popup responsive; past that you get a
plain message saying so rather than a hung tab. Very large diffs are capped at
5,000 reported differences, and the result says clearly when it has been
truncated.
FREE, AND GENUINELY USEFUL
- Structural diff of two JSON documents by key path.
- Added / removed / changed / type-changed / number-format outcomes, with
colour-coded results and summary counts.
- Index-wise array comparison.
- Duplicate-key warnings and line/column parse errors.
- One-click copy of the full text report.
PREMIUM ($5 one-time)
- Deep-path filters: include or exclude paths by glob (`$.data.*.id`,
`$.meta.**`) to cut noise from fields you do not care about (timestamps,
request ids, and the like).
- Array-order-insensitive mode: compare arrays as multisets when order is not
meaningful.
- Saved comparisons: keep named A/B pairs on your device and reload them later
(each side up to 100,000 characters, though a document too large to save
still diffs fine; the 25 most recent comparisons are kept).
- Export: the diff as JSON or as a Markdown table, ready to paste into a PR.
No subscription, no account required. Pay once, keep the features.
Growth
Window
Users
Change
Ratings
Rating
7 days
0
+0.0%
0
0.00
30 days
−1
−25.0%
0
0.00
Chrome Web Store search rankings
Where JSON Diff: Structural JSON Compare Tool appears when people search the store, with the 30 day change