QuickMeld

JSON Compare

Compare two JSON documents by path, with lists matched by id and secrets masked.

Your data stays in your browser

Advertisement

Documents

AShared with other tools

Waiting for data

B

Waiting for data

Comparison

No result

Paste a JSON document in A and B above, then press Compare JSON.

Advertisement

Example

No choices: items match by id automatically

A

{
  "status": "pending",
  "items": [
    { "id": 1, "qty": 1 },
    { "id": 2, "qty": 2 }
  ]
}

B

{
  "items": [
    { "id": 3, "qty": 1 },
    { "id": 1, "qty": 1 },
    { "id": 2, "qty": 5 }
  ],
  "status": "paid"
}

Output

Added: items[id=3]
Removed: none
Changed: items[id=2].qty (2 → 5)
Changed: status ("pending" → "paid")
Unchanged: items[id=1].qty

How it works

  • Fields are matched by path, such as customer.email, so key order and formatting never count. An added or removed object is one difference you can open.
  • Kinds count: 120.5 and "120.50" are a type change, while 1 and 1.0 are the same number. Missing, null, and "" stay apart.
  • Lists of objects with a unique id, key, uuid, or name match by it automatically. Other lists compare by position, or by a key you choose, or ignore order, where repeats still count.
  • Ignore fields that always change, such as requestId or **.updatedAt. A key defined twice is flagged, and its last definition is used.
  • Secret-looking values, such as access tokens, are masked and still compared. Reveal one on screen when you need it. Copies and downloads stay masked.