How to use the Compare JSON Files
- 1 Drop the first JSON file (the source), then the second. Or paste the second one under More options.
- 2 List the fields to ignore, one path per line: updatedAt, items.*.seenAt, **.requestId.
- 3 Choose how lists are matched: by position, by a key field such as id, or ignoring order.
- 4 Read the table of added, removed and changed values and export it.
Compare meaning, not text
Two API responses with the same content can differ in key order, whitespace and a timestamp. A text diff lights up everything. This comparison walks both documents together and lists differences by path: a key that was added or removed, a value that changed, or a value that changed type (the number 1 against the text "1"). Key order and formatting are irrelevant by definition.
Ignoring fields
Volatile fields – updatedAt, request ids, session tokens, fetch times – make every comparison noisy. Write one path per line to leave them out: updatedAt for a top-level key, items.*.seenAt for a key in every list item (* is any one level), or **.id for a key at any depth. Lines starting with # are comments. The notes count how many fields were ignored, so a typo in a path does not go unnoticed.
Lists
By position, the first item is compared with the first. That fits ordered data. By a key field such as id, items are matched by that value, so reordering is not a change and the changes inside each item are reported under a path like items[id=b].qty. Ignoring order treats lists as bags: an item either appears in both or is listed as added or removed.
Numbers
Numbers are compared by value: 1 and 1.0 are equal, and long numbers such as 12345678901234567890 are compared digit by digit, not rounded.
Limits
The result is a table, so you can sort and export it, but it is a list of differences, not a patch. Files with syntax errors are refused with the position of the first problem (RFC 8259 syntax).
Frequently asked questions
Does the order of keys matter?
No. Objects are compared by key, never by position.
How do I ignore a field in every item of a list?
Use a wildcard path, for example items.*.updatedAt, or **.updatedAt to ignore it at any depth.
Can I ignore the order of a list?
Yes. Choose “Ignoring order” for lists. Items are then matched by their full content.
Last updated: