Large files are kept out of the editor so typing stays smooth. Hit the button below to process it.
Aempty
file.json
Bempty
file.json
Or press Ctrl+Enter · max 50MB
Formatted
No differences — these two documents hold the same value.
{ }
Your formatted JSON will appear here.
Two-space indent, syntax highlighted, ready to copy.
That doesn’t look like valid JSON
Preview truncated for speed — the full document is intact. Use Copy or Download to get all of it.
Compare values, not text
Paste one document into A and the other into B, then press Compare. Because this compares parsed values rather than lines of text, reordering keys or changing indentation produces no differences at all — the noise that makes a general-purpose text diff painful for JSON simply does not appear.
Everything runs in your browser. Your JSON is parsed by a Web Worker on your own machine and never sent anywhere — there is no upload, no account, and no server-side processing. You can check: open the network tab and format a file, and you will see no requests.
What you get back
Every difference is reported against a path you can act on, such as limits.indent or modules[2], labelled as added, removed or changed, with the old and new values side by side. A key that exists in one document and not the other is reported as added or removed; a key present in both with a different value is reported as changed, including when the type changed. Missing keys stay distinguishable from keys set to null. The full change list can be copied or downloaded as JSON.
How arrays are compared
Arrays are compared element by element, by index. This is exact and fast, but worth understanding: inserting an element at the front of a long array reports every later index as changed, rather than reporting a single insertion. For comparing records, giving each element a stable position — or comparing objects keyed by id — gives the most readable result.
Questions
Does key order count as a difference?
No. Two documents holding the same values are reported as identical however their keys are ordered or their whitespace is arranged.
Can I compare two files rather than pasting?
Yes. Each side has its own upload button, and dropping a file onto a pane loads it into that pane. Files above 1MB are read inside the worker.
What if one side is invalid JSON?
The error says which side failed, gives the line and column, and selects the offending token in that pane.
Is there a limit on the number of differences?
It stops at 20,000 differences and says so, which keeps a comparison between two unrelated documents from exhausting memory.
Found a bug? Want another tool?
This site has no accounts, no analytics and no error reporting — which also means nothing
tells me when something breaks. If a file failed to parse, a conversion came out wrong, or
you keep reaching for a tool that isn’t here yet, send it over and it gets looked at.