JSON Diff With Line Numbers
Drop two JSON documents side-by-side and see every changed key, value, line, and column highlighted in sync.
Instant
Runs entirely in your browser — no upload, no wait.
100% private
Your JSON never leaves the tab. Nothing is logged.
No signup
Free, unlimited, no account required.
Why text diff is not enough for JSON
git diff and most line-based diff tools treat JSON as plain text. A reordered key looks like a deletion-plus-insertion, formatting changes drown out real edits, and arrays compared by position miss reorderings entirely.
A JSON-aware diff parses both sides, normalizes formatting, and compares values by structure. Line numbers stay useful because they map back to the source you are editing.
How the diff works
Both inputs are parsed and pretty-printed with the same formatting rules. Each line of the normalized output keeps a back-reference to the original input position. Differences are computed at the value level — added keys, removed keys, changed scalar values, and structural differences in arrays — then projected back onto the formatted view with red/green gutters.
Reading the result
Green lines were added on the right. Red lines were removed from the left. Amber marks values that changed in place. Hovering a line shows the JSON Pointer to that node, which you can copy and paste into JSONPath queries or schema validators.
// Left
{
"user": {
"name": "Ada",
"role": "admin"
}
}
// Right
{
"user": {
"name": "Ada",
"role": "owner",
"active": true
}
}Tips for clean diffs
Sort object keys alphabetically before diffing if you only care about value changes — toggle "Sort keys" in settings. For array-of-object data where order does not matter, switch the array compare mode to "by id" and pick the identifying key.
Privacy
Both documents are diffed locally in your browser. Nothing is uploaded, logged, or sent to a third party.