Jsony

JSON Diff

Compare two JSON documents and see what changed. Structural diff in your browser — your data never leaves the page.

Diff

Paste JSON in both panes to compare.

What is the Jsony JSON Diff?

A structural diff for JSON. Paste two documents — typically the before and after of an API response, a config file, or a snapshot — and see exactly what changed: which keys were added, which were removed, which had their values modified.

Unlike a text diff, this understands JSON's shape. Reordering keys in an object isn't a change (the JSON spec doesn't define key order as meaningful). Reordered array items are detected as moves when they have an id field, rather than reported as a full rewrite. The result is a much shorter, much more readable diff than running diff on the raw text.

How to use it

  1. Paste your two documents in the left and right input panes. Or click Open file on either side to load from disk.
  2. Click Diff (or just paste — the diff runs automatically when both sides have content).
  3. Read the result. Green = added on the right. Red = removed from the left. Red-strikethrough → green = modified value. Gray = unchanged context shown for orientation.
  4. Swap the sides with the Swap button if you got them in the wrong order — it preserves the diff state.

Common use cases

API regression debugging.When "the response changed" but you can't see how, paste the old and new payloads here. The diff surfaces the exact field that's different.

Config file review. package.json, tsconfig.json, Kubernetes manifests, Terraform plans — comparing two versions of structured config is exactly what this tool was built for.

Snapshot comparison.If you're testing an endpoint and want to see what changed between two test runs, drop the two captured responses in.

Code review pre-flight.Sometimes a PR's diff on a JSON fixture is cluttered by reformatting. Diffing the parsed values here gives you only the semantic changes.

Frequently asked questions

How does it compare two JSON documents?
It parses both, then computes a structural delta — meaning it understands JSON's shape, not just text lines. So reordering keys in an object is a no-op, but adding, removing, or changing a value is shown. Arrays are matched item-by-item; if items have an `id` field, it uses that to detect moved or reordered items rather than reporting a full rewrite.
What does each color mean?
Green = added (present on the right, not on the left). Red = removed (present on the left, not on the right). Red strikethrough → green = modified (different values for the same key). Gray = unchanged context.
Is my data private?
Yes. Both documents are parsed and diffed entirely in your browser, in a Web Worker. Nothing is sent to a server, no analytics tracks the content of either side. The complete source is open on GitHub.
Can I diff two JSON files?
Yes. Each input pane has its own 'Open file' button. Pick the left file and the right file, and the diff runs automatically once both load.
Does it handle large JSON?
The parse + diff runs in a Web Worker so the UI stays responsive. Multi-MB documents work but the rendered diff itself can get long for documents with thousands of differences — scroll within the diff pane.
Why is reordered array seen as no change but reordered object is?
JSON object key order isn't semantically meaningful (per the spec), so reordering keys is treated as identical. Array order IS meaningful, but if items have an 'id' field, the diff matches by id and reports moves rather than full rewrites.

Related tools

Use the JSON Formatter to format and validate either input first if you suspect parse issues. Or the JSON to CSV converter if you want to dump the diff to a spreadsheet for further analysis. More Jsony tools coming soon: a JWT decoder and a Base64 encoder.