How to compare JSON without the noise
A text diff treats JSON as lines, so reformatting or reordering keys shows up as a change. This tool compares the data instead:
- key order and whitespace never count;
- every difference is shown with its exact path, such as
$.Actions[3].Parameters.Text; - you can step through differences (↑ ↓ or Alt+arrow), filter them, and click a path to copy it.
Arrays: the hard part
Comparing arrays position by position makes one inserted item look as if every later item changed. Here array items are matched in this order:
- By ID key. If every item has a unique
Identifier,Sid,id,Key,Name(or a key you type), items are paired by it. Reordered items are reported as moved. - By content. Otherwise, the longest unchanged run of items is kept aligned and the rest are paired up, so an insert is one addition.
- By position. Available when you really want index-by-index.
The Ignore array order option compares arrays as unordered collections. Treat lists of plain values as sets does the same only for lists like IAM Action or Resource.
Presets for AWS documents
- Amazon Connect contact flow: matches actions by
Identifier, ignores block positions on the canvas, and ignores account IDs, regions and instance or resource UUIDs inside ARNs. A dev export and a prod export then show only real logic changes. - IAM / resource policy: matches statements by
Sid, treats"s3:GetObject"and["s3:GetObject"]as equal, and ignores the order of actions and resources. - CloudFormation: resources compare by logical ID, and tags match by
Key. - API / SDK response: ignores request IDs, timestamps and
ResponseMetadata.
Add your own ignore paths:
- a plain key name (
LastModified) matches that key anywhere; *matches one key,[*]any index, and**any depth (**.position).
Exports
- JSON Patch (RFC 6902): the exact operations that turn the left document into the right one. The tool applies the patch to check it before showing it. Ignore rules do not apply to patches.
- Merge patch (RFC 7386): the simpler "what changed" object, where
nullmeans removed. - Markdown or HTML report: for a change ticket, pull request or CAB review.
- Share link: the JSON is compressed into the link itself, not stored on our server. Anyone with the link can read it, so don't share secrets.
Big numbers are compared exactly. Duplicate keys and invalid input are flagged, with one-click repair. Files up to 200 MB can be opened or dropped on each panel.