JSON Diff Online
Compare two JSON files by their data. Reordered keys are not changes, and type changes are called out.
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.