JSON Diff

Compare two JSON documents semantically.

Runs locally in your browser Report an issue
Differences

Paste two JSON documents to compare them

Drop the original on the left and the updated one on the right. You get a readable list of added, removed, and changed paths — key order and whitespace are ignored, and it all runs in your browser.

Runs entirely in your browser

Compare two JSON documents, locally

Paste one JSON document on the left and another on the right, and this tool shows exactly what changed between them. Because both sides are parsed into values before comparing, the result ignores key order and insignificant whitespace — reordered keys or reformatted indentation are not reported as differences, only real structural changes are. Each change is listed by its JSON path: added keys or array items, removed ones, and changed values shown as old → new. If either side is not valid JSON, you get a clear error naming which side is wrong instead of a confusing partial result. Everything runs in your browser, so the data you compare — including exports or internal records — is never uploaded.

Common questions

Does it ignore key order?

Yes. Both documents are parsed into JSON values first, so the order keys appear in and any differences in whitespace or indentation are irrelevant. Only genuine structural differences — added, removed, or changed values — are reported.

How are the differences described?

As a list keyed by JSON path. Added keys or array items are marked added, missing ones are marked removed, and a value that changed is shown as old → new. Object keys use dot or bracket notation and array items use an index, like $.meta.uploads or $.tags[1].

How are arrays compared?

Arrays are compared by position — item 0 to item 0, item 1 to item 1, and so on. Extra items on one side show as added or removed at that index, and an item whose value changed shows the old and new value.

What happens if a document is invalid?

The compare stops and shows a clear error that names which side (left or right) failed to parse and includes the parser's message, rather than producing a misleading diff.

Is my JSON uploaded anywhere?

No. Both documents are parsed and compared entirely in your browser tab. Nothing is sent to a server, so it works offline and your data stays private.