JSON Diff — compare two JSON files
Compares the data, not the text. Reordered keys are not treated as changes, and a value that changes type is called out separately. Runs entirely in your browser — nothing is uploaded.
Original
Modified
Why a JSON diff is not a text diff
JSON objects are unordered. {"a":1,"b":2} and {"b":2,"a":1} are the same document, but a text diff will paint both lines as changed. Run an API response through a formatter, or a serializer that emits keys in a different order, and a plain diff becomes unreadable — every line moved, nothing actually different.
This tool parses both sides first, sorts keys at every level, then compares. What you get back is the list of JSON paths that actually differ.
Types are reported separately
{"id": 1} and {"id": "1"} differ by one character as text, and by something that will break a strict consumer as data. Type changes — number to string, object to array, a value becoming null — are counted and labelled apart from ordinary value changes.
Arrays keep their order
Array position is meaningful in JSON, so arrays are compared element by element and reordering one is a real difference. Only object keys are treated as unordered.
Nothing leaves your browser
Parsing and comparison happen on your machine. No upload, no account, and no size limit imposed by a server — which means you can compare files you would not be willing to paste into a hosted tool.