JSON Diff
Compare two JSON documents semantically — key order is ignored and only real structural changes are reported. Nothing is uploaded — the comparison is local.
Semantic vs textual comparison
A line-by-line text diff is noisy on JSON: reordering keys, changing indentation or splitting a line all count as differences even when the data is the same. A semantic comparison parses both documents and walks their structure, so it reports only genuine changes — an added key, a removed key, or a changed value — and it does so regardless of key order. Arrays are compared by position. This pairs with the JSON formatter for pretty-printing and validation; for ordinary text use a plain text diff.
Frequently asked questions
How is this different from a text diff?
A text diff compares lines. This tool compares JSON documents semantically, so reordered keys or reformatted whitespace are not reported as differences — only real structural changes are.
What kinds of differences are shown?
Added, removed and changed paths. The path uses dot and bracket notation, for example $.store.book[0].title.
Is key order ignored?
Yes. Objects are compared by their keys, not by the order they appear, which is exactly what a JSON-aware comparison should do.
How are arrays handled?
Arrays are compared by position, so an added, removed or changed element is reported at its index.
Can it ignore letter case in strings?
Yes, there is an option to compare string values case-insensitively when you need a looser match.
Is my JSON uploaded anywhere?
No. Both documents are parsed and compared in your browser. Nothing is uploaded.