Everything below runs in your browser. There is no upload step, no queue and no account.
Side-by-side diff
Both documents are drawn from a single merged tree, so the two columns cannot drift out of alignment: every row shows the same position in both documents, and scrolling and expanding move both sides together by construction rather than by synchronisation. Added rows are green, removed rows red, modified rows amber, and each carries a +, − or ~ marker so the status does not depend on colour alone.
Everything it detects
Added keys, removed keys, modified values, type changes, array differences, object differences and nested differences at any depth. A key whose value is an entire object counts as one addition, not one per field inside it — the summary counts changes, not lines.
Comparison options
Compare by value, or by structure alone when only the shape matters. Ignore case in keys and string values, ignore leading, trailing and repeated whitespace, and ignore array order to match items by content instead of position. Formatting and key order are always ignored, because the comparison never sees the text.
Navigation and search
Step through the differences one at a time with previous and next; each jump opens whatever branches are needed and centres the result. Search runs across both documents at once and can be limited to keys or to values. “Only differences” hides every identical row; “Expand changed” opens precisely the branches that contain one.
JSON paths
Select any row to see its path in $.users[2].address.cityform, ready to copy, along with buttons to copy that row’s value from either side. Keys that are not valid identifiers are bracketed and quoted, so what you copy is a valid expression rather than an approximate one.
Summary and statistics
Added, removed, modified and total differences at a glance, alongside separate statistics for each document: characters, lines, objects, arrays, keys, maximum depth and size.
Export
Copy or download the full list of differences as a JSON report — every change with its path, its status and both values, plus the options the comparison ran under, so the result is reproducible.
Files, swapping and fullscreen
Upload a file into either side or drop one onto its panel; the filename becomes that side’s label. Swap the two documents with one press when you have loaded them the wrong way round, and go fullscreen when the comparison deserves the whole window.