Compare JSON as data, not as a blob of text

Free JSON diff in your browser. Pretty-print both sides, ignore key order, and highlight added, removed, and changed values. Nothing is uploaded.

A textual JSON diff treats key order and whitespace as changes. That is honest if you need to see exactly what a client sent. It is noisy if you only care about values. This JSON diff checker parses both sides, optionally sorts object keys, and pretty-prints with the same indent before it runs the usual line-and-word diff.

Arrays keep their order. Nested objects are sorted recursively when Ignore key order is on. Invalid JSON is an error in that pane, not a silent character comparison. Load .json files from this device or paste. History, if you save it, stays in localStorage on this browser.

For XML, YAML, or plain text, use XML Diff,YAML Diff, or Text Diff.

Frequently asked questions

Does JSON Diff ignore key order?

Yes, by default. Object keys are sorted before the comparison, so {"b":1,"a":2} matches {"a":2,"b":1}. Turn Ignore key order off if order is meaningful in your payload.

What happens if my JSON is invalid?

The pane shows the parser error and the diff does not run. Fix the JSON on that side and try again. Nothing is uploaded.

Is minified JSON compared as one line?

No. Both sides are pretty-printed with two-space indent before the diff, so a minified file next to a formatted one does not light up every line.

Does this upload my JSON?

No. Parsing and comparison run in this tab.