Skip to content

Free developer tool · runs in your browser

JSON compare: diff two JSON documents by value.

Paste two versions of a payload, a config or an API response and see what actually changed: values added, removed and edited, each with its path. Reordered keys and reformatted whitespace are not reported, because in JSON they are not changes.

View
568 chars
599 chars
Differences5 differences
Differences between the left and right documents
ChangePathBeforeAfter
Changedstatus"shipped""delivered"
Changedtotal129.5114.5
Changeditems[1].qty21
Removedtags[1]"gift"
AddeddeliveredAt"2026-10-16T11:40:00Z"
Added
1
Removed
1
Changed
3
Key order
Ignored

Privacy: this tool runs in your browser. Your JSON is not uploaded or logged. A shared link keeps the input after the #, which browsers never send to a server.

Follows: RFC 8259 (checked 2026-10-18) · RFC 9535 (checked 2026-10-18) · RFC 4180 (checked 2026-10-18)

What this tool does


Only the differences that change the data.

  • 01

    A semantic diff, not a text diff

    Both sides are parsed first, so indentation, line breaks and the order of keys inside an object never show up as changes. A text diff of two reformatted files reports every line; this reports none.

  • 02

    Arrays aligned, or treated as sets

    Lists are lined up item by item, so one inserted element is one addition rather than a cascade. Tick Ignore array order when a list is really a set, such as tags or permissions.

  • 03

    Every change with its path

    The list names each change as added, removed or changed, with the path to it and the value before and after. Switch to side by side to see both documents with the changed lines marked, or download the list as CSV.

FAQs · JSON compare


JSON compare · frequently asked questions

Key order, array order, and what counts as a change.

No. RFC 8259 defines a JSON object as an unordered collection of name/value pairs, so {"a":1,"b":2} and {"b":2,"a":1} are the same value and the tool reports no difference. Array order does matter, unless you tick Ignore array order.
When the array is really a set: tags, roles, permissions, feature flags. With the option on, items are matched by value, and edited items are paired by an id, sku, slug or name field so the change shows as one edited field rather than a removal and an addition.
A text diff compares lines, so reformatting a file or reordering its keys changes every line. This tool parses both documents and compares the values, so only changes to the data are reported, each with the path to it.
No. It runs entirely in your browser: nothing you paste is sent to QalbIT, logged or stored. A shared link keeps your input after the # in the address, and browsers never send that part to a server.
Yes. Copy changes or Download .csv gives one row per change with its type, its path in dot and JSONPath form, and the value before and after. To look through one of the documents in depth, open it in the JSON viewer.

Next step


Payloads changing under you?

QalbIT builds versioned, typed APIs and the integrations around them, so a field that changes shape is a decision in a pull request, not a surprise in production.

More free tools


More free tools

Each one opens on a worked example and shows its answer without a signup.

All free tools