Runs 100% in your browser — nothing is uploaded
JSON & Data Formats

JSON Diff / Compare

Compare two JSON documents structurally or as text, with per-key added/removed/changed stats.

JSON Diff / Compare
Client-side

About this tool

The JSON Diff tool compares two JSON documents and shows you exactly what changed — which keys were added, which were removed, and which had their value changed — without being tripped up by superficial differences like key order or whitespace.

Two comparison modes are available. Semantic mode structurally walks both parsed JSON trees and reports differences by JSON path, completely ignoring key order — {"a":1,"b":2} and {"b":2,"a":1} are treated as identical. This is the mode you want when comparing API responses, config files, or state snapshots. Text mode instead pretty-prints both documents with sorted keys and runs a classic line-based diff, giving you a more traditional red/green diff view.

A summary line ("N keys added · M keys removed · K keys changed") gives you an at-a-glance sense of how different two documents are before you scroll through details. If either JSON panel contains invalid JSON, the tool tells you exactly which side has the problem and shows the parse error — it never attempts to diff a broken document.

Common uses: reviewing API response changes between environments or API versions, verifying a config migration didn't introduce unintended changes, debugging why two "identical-looking" payloads behave differently, and comparing test fixtures against actual output. Everything runs client-side; your JSON is never uploaded.

FAQ

What is the difference between Semantic and Text mode?
Semantic mode parses both documents and structurally compares their values, so key order never matters. Text mode pretty-prints both with sorted keys and diffs them as plain text lines, giving a familiar red/green line-diff view.
Does key order affect the comparison?
Not in Semantic mode. Text mode also sorts keys before diffing for the same reason, so reordering keys alone will not produce a diff in either mode.
How are array differences reported?
Arrays are compared index by index in Semantic mode. Extra trailing elements are reported as added or removed at their index path; elements present at the same index in both are compared recursively.
What happens if one of my JSON inputs is invalid?
The tool validates both documents before attempting any comparison. If either fails to parse, it tells you exactly which panel has the problem along with the specific parse error.
Can I use this to compare API response versions?
Yes — paste the "before" response into JSON A and the "after" response into JSON B, and Semantic mode will show precisely which fields were added, removed, or changed in value.