JSON Diff

Compare two payloads by structure, not by text. Key order never matters.

Before
After

About this tool

Compare two JSON documents structurally. Key order, indentation and spacing never matter — only real differences appear: added keys, removed keys, and changed values, each with its path ($.users[1].name).

The comparison is recursive and order-independent: an object with reordered keys is identical, an array is compared item by item, and a changed subtree reports only the deepest changed values — not "the whole object changed".

Nothing is uploaded. The documents people diff are usually two versions of something sensitive — a config before and after a deploy, a response from staging and production — which is precisely why both stay in the tab.

How to use it

  1. Paste the left document (usually "before").
  2. Paste the right document (usually "after").
  3. Read the findings: each states added / removed / changed, the path, and a short description of the values on each side.

Worked example

The samples differ in exactly three places: limits.page changed from 50 to 100, flags gained a third item, and owner was added. Key order differs too — and correctly does not appear.

Two versions, three findings

Frequently asked questions

Why does key order not matter?
Because JSON objects are unordered by definition — the specification says a name/value collection, not a sequence. Two objects with the same members in different order are the same value; a text diff would call them different, which is noise, not information.
How are arrays compared?
Position by position: item 0 with item 0, item 1 with item 1. A removed item shifts everything after it, which the findings reflect. Arrays are ordered by definition, so there is no reordering to ignore.
What does a "changed" finding show?
The path, and a compact description of the value on each side — a short string quoted, an object or array summarised by its size. Enough to spot the change at a glance; the panes hold the full text for the details.
Can it diff YAML or CSV files?
Convert them first (YAML to JSON, CSV to JSON), then diff here. The structural comparison needs the data as JSON; the converters get it there without changing it.
Is there a size limit?
No fixed one. The diff runs on your device; the limit is memory. Very large documents produce long findings lists, capped at the first 200 with a count of the rest.