Skip to content
IntegrateKit

JSON Compare & Diff Tool: Semantic, Not Text

Compare two JSON documents by structure, not text. See added, removed and changed fields, type changes and array differences with exact paths.

FreeRuns in your browser

JSON Compare tool

Comparison workspace

Runs entirely in your browser. Nothing you paste is uploaded or stored.

Original payload

0 B

Modified payload

0 B

About this tool

Paste two JSON documents and see exactly what changed: added and removed fields, changed values, type changes, null versus missing, and array differences, each with its JSON path and the values on both sides.

Unlike a line-by-line text diff, IntegrateKit parses both documents and compares their structure. Reordered keys and different indentation are not differences. A number that turned into a string is, and it's flagged as a breaking change.

How to use it

  1. Paste or drop the original JSON on the left and the modified JSON on the right.
  2. Optionally open Options to ignore fields or paths, ignore array order, or treat null as missing.
  3. Press Compare (Ctrl/⌘ + Enter). Click a difference, or use F8 and Shift+F8, to jump to it in both editors.
  4. Copy a text summary or download the full result as JSON.

Limitations

  • Inputs up to 25 MB per side. Very large comparisons list the first 10,000 differences; the summary still counts all of them.
  • Arrays compared by ignoring order report unmatched elements as removed and added rather than as nested changes.
  • Comments, trailing commas and JSON5 syntax are reported as errors.

Example

Original → Modified
{ "active": true,  "roles": ["admin", "editor"], "lastLogin": null }
{ "active": "true", "roles": ["editor"], "lastLogin": "2026-10-30T08:15:00Z", "plan": "pro" }
Differences
Breaking  Type changed    $.active     true → "true"  (boolean → string)
Info      No longer null  $.lastLogin  null → "2026-10-30T08:15:00Z"
Info      Field added     $.plan       missing → "pro"
Warning   Array length    $.roles      2 → 1 items
Warning   Value changed   $.roles[0]   "admin" → "editor"
Warning   Item removed    $.roles[1]   "editor" → missing

Common use cases

Reviewing an API change

Compare a response before and after a code change to confirm only the fields you intended actually changed.

Checking configuration drift

Diff JSON configuration or feature-flag files between environments and spot missing keys and changed types at a glance.

Debugging test failures

When an assertion on a JSON body fails, paste expected and actual payloads to see the exact paths that differ.

Frequently asked questions