Overview
Compare JSON structurally by key path, on-device. See additions, removals, changes & type flips. A private JSON diff 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 — 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 — 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.
0 out of 5No ratings
Details
- Version0.1.1
- UpdatedJuly 31, 2026
- Size79.79KiB
- LanguagesEnglish
- DeveloperSourwood Labs LLCWebsite
212 West Troy Street STE B Dothan, AL 36303 USEmail
sourwoodlabsllc@gmail.comPhone
+1 334-510-4246 - TraderThis developer has identified itself as a trader per the definition from the European Union and committed to only offer products or services that comply with EU laws.
Privacy
This developer declares that your data is
- Not being sold to third parties, outside of the approved use cases
- Not being used or transferred for purposes that are unrelated to the item's core functionality
- Not being used or transferred to determine creditworthiness or for lending purposes
Support
For help with questions, suggestions, or problems, visit the developer's support site