JSON Compare & jq Filter
Compare two JSON documents, inspect exact changes, and extract fields with a jq-style filter.
Differences
0 changesRun a comparison to see added, removed, and changed values.
jq-style Filter
Supported examples: .users[] | select(.active == true) | {id, name}, .users | map(.name), .users | length
Compare JSON Files Quickly
Two API responses or configuration files can be hard to compare by hand. This tool reports each change as added, removed, or changed, with the exact path, so you can see precisely what differs.
Both documents are parsed and compared in your browser, so private responses and configuration data stay on your device.
Extract Data with jq-style Filters
Use dot paths to select fields, [] to expand arrays, select() to keep matching records, and object projections to return only the fields you need. The filter runs against the original (left) document.
For example, .users[] | select(.active == true) | {id, name} returns the id and name of active users, and .users | length returns the number of users.
Frequently Asked Questions
Can I compare nested JSON objects?
Yes. The comparison walks nested objects and arrays by key or index and reports a path such as $.users[1].active for every added, removed, or changed value.
Which jq filters are supported?
Dot paths, array expansion with [], numeric index access, select() comparisons (==, !=, >, <, >=, <=), object projections, map(), and length.
How are arrays compared?
Arrays are compared position by position, so an inserted element shifts everything after it and can appear as several changed paths rather than one addition.
Is my JSON uploaded?
No. Parsing, filtering, and comparison all run locally in your browser.