Private by default

Semantic JSON Comparison

Find added, removed, and changed values using readable JSON paths.

Your data stays in this browser
Input JSONJSON
UTF-8Ln 1, Col 1
ResultDIFF
UTF-8
Loading…
Browser-only autosaveInputs and settings stay saved only in this browser and return after a reload. Turn on Clear saved data to keep this tool session-only.
Your data stays in this browser
InstantNo server round trips
PrivateBrowser-side processing
AuditableDocumented semantics
PortableCorrectly typed downloads
Category

JSON Compare: How to use this tool

Compare two JSON values by meaning, ignoring object-key order while preserving array order.

Find added, removed, and changed values using readable JSON paths.

Open guide and examples

How to use this tool

  1. Paste JSON, upload a local file, or load a CORS-enabled public URL.
  2. Enter both documents and run Compare JSON.
  3. Review the result, then copy it or download it with the correct file type.

Example to try

Input JSON
{
  "project": "jsonformatters.org",
  "status": "ready",
  "features": ["format", "validate"],
  "private": true
}
Compare with
{
  "project": "jsonformatters.org",
  "status": "updated",
  "features": ["format", "validate", "compare"],
  "private": true
}
Result
ADDED   $.features[2] → "compare"
CHANGED $.status "ready" → "updated"
Learn

Frequently asked questions

Does this tool upload my JSON?

No. The transformation runs in your browser. URL import contacts only the address you explicitly enter.

What happens when the JSON is invalid?

The editor marks the likely location and keeps stale output out of the result pane.

What does JSON Compare produce?

It lists semantic changes by path; object key order alone is not a difference, but array position is.

What limitation applies to JSON Compare?

The visible diff is capped at one thousand changes to protect responsiveness.