About this tool
This is a structural diff: it compares the parsed data, not the text, so whitespace and key order never show up as changes. On top of that you can ignore specific fields, treat arrays as unordered sets, and download a plain-text report of every difference with its path. It is built for comparing API responses, configuration files and test fixtures.
How the comparison works
Each difference is reported with its path, such as address.city or users[1].role. Objects are compared by key, so reordering keys changes nothing. Arrays are compared position by position, unless you ignore array order.
~ 0.name: "Asha Rao" -> "Asha R." + 1.role: "admin" - 1.temp: true ~ changed value + added in the second JSON - removed from the first
Ignore fields and array order
Real data often contains noise, such as timestamps, generated IDs or request tokens, that changes on every call. Ignoring those fields leaves only the differences that matter. Use Ignore array order when a list is a set, for example tags or permissions, where the order has no meaning.
How to use it
- Paste the original JSON on the left and the changed JSON on the right, or open a file into each side.
- Optionally tick Ignore array order, or list fields to ignore, such as updatedAt, id or user.token.
- Click a difference to jump to it in your JSON, and use Download to save the report.
Frequently asked questions
How do I ignore a field?
Type its name in Ignore fields, separated by commas. A bare name such as updatedAt is ignored at every depth. A dotted path such as user.id ignores only that field.
What does Ignore array order do?
Arrays are compared as unordered collections, so the same items in a different sequence count as equal. Click-to-jump is turned off in this mode because positions no longer match your text.
What do +, - and ~ mean?
+ was added in the second JSON, - was removed from the first, and ~ means the value changed.