Your JSON stays in this browser

Compare JSON by what it means.

PayloadPair is a free, private browser-based JSON compare tool for API responses and configuration files. Define what “equal” means—by path, number, and array identity—without hiding how records were matched.

  • Local processing
  • No payload storage
  • Patch round trip verified
Why semantic diff?1 meaningful change
{
  "items": [
    { "id": 42, "qty": 3 },
    { "id": 7,  "qty": 5 }
  ]
}
{
  "items": [
    { "id": 7,  "qty": 5 },
    { "id": 42, "qty": 4 }
  ]
}
$.items[id=42].qty3 → 4Matched by id; reordering ignored by your rule.
Private JSON workbench

Compare two JSON values

Runs locally
Originaloriginal.json
333 B · 20 lines
Modifiedmodified.json
437 B · 26 lines

Sample JSON is ready to compare.

A semantic JSON diff, made explicit

Text diff sees lines. PayloadPair sees JSON values.

JSON objects are unordered, arrays are ordered, and production payloads often contain volatile fields. PayloadPair begins with safe JSON semantics, then applies only the rules you choose.

ModeWhat it meansBest for
Ordered arrayPosition is meaningful. This is the default.Logs, ranked results, step sequences
Match by keyPair objects by a confirmed scalar identity such as id or sku.API records, inventory, environments
Unordered multisetIgnore order while preserving duplicate counts.Tags, permissions, unordered values
Ignore pathExclude a precise JSON Pointer or an explicitly named key.Timestamps, request IDs, trace metadata
Built for trust

Every hidden difference leaves a receipt.

PayloadPair does not silently decide that two records belong together. Matching evidence, ignored counts, and rule coverage remain visible beside the result.

Read the full methodology
01

Explainable array matching

Identity-key suggestions show uniqueness evidence and require confirmation. Missing or duplicated identities stop the rule instead of falling back silently.

02

Precision-preserving numbers

Large integers and decimal spellings are parsed without being squeezed through JavaScript's ordinary floating-point representation.

03

Raw patch, filtered report

Your semantic rules shape the review. The JSON Patch remains a separate original-to-modified transformation and is enabled only after a round-trip check.

04

Local by design

Inputs live in memory, refresh clears them, and configuration sharing excludes payload values. Reports omit values unless you deliberately include them.

Common workflows

Find the change that matters.

Compare staging and production

Ignore request IDs and timestamps, then catch missing fields, type drift, or unexpected values after a deployment.

Review failed fixtures

Compare expected and actual JSON while preserving the difference between a missing property and an explicit null.

Audit configuration drift

Match arrays of environment entries by name and explain precisely which record changed.

Check localization files

Spot missing keys and type changes without being distracted by object-member ordering.

Inspectable correctness

Test the engine, not the marketing copy.

Our public edge-case corpus covers object order, array edits, keyed matching, duplicate identities, numeric precision, JSON Pointer escaping, and patch round trips.

Explore conformance
Questions, answered directly

JSON comparison FAQ

Does PayloadPair upload my JSON?

No. Comparison runs inside a browser worker, and PayloadPair does not intentionally transmit or store your JSON input. Refreshing or clearing the page removes it from application memory. Ordinary page and device metadata may be processed by a future analytics provider as described in our privacy policy, but payload content is excluded.

Does JSON object key order matter?

Object member order does not change the JSON value. Array order does matter by default. If an array represents records rather than a sequence, you may explicitly match it by a unique key or treat it as an unordered multiset.

What happens when an identity key is duplicated?

The keyed rule stops for that array and reports the ambiguity. PayloadPair never silently falls back to comparing those records by index.

Is the JSON Patch affected by ignore rules?

No. Ignore rules, tolerance, and keyed matching affect the comparison report only. The exact patch is generated directly from the original value to the modified value and verified before export.

Can I compare large JSON files?

PayloadPair performs parsing and comparison in a background worker and renders large results in bounded batches. Practical limits still depend on your browser and device. The current editor safety limit is 5,000,000 bytes per input.