JSON Diff & Compare

Paste two JSON documents. See exactly what changed, side by side.

Your JSON stays in this browser.

0 / 200,000 characters

Paste JSON in both editors, then compare. Or load the example to try it.

How comparison works & limits

Spaces and object key order are ignored. Arrays compare by position unless you select Ignore array order. A missing field differs from a field set to null, and 1 differs from "1".

Up to 200,000 characters, 20,000 values and 100 nesting levels per side. Files must be UTF-8 JSON, up to 800 KB. Quote long IDs to preserve their digits. Line numbers refer to the formatted comparison, not the original file.

Need to fix invalid input? Use the JSON Formatter & Validator. For whitespace and source-line changes, use Text Diff.

Found this useful? Share it

X LinkedIn Reddit WhatsApp

About JSON Diff & Compare

JSON diff compares parsed data rather than lines of text. This JSON comparison tool ignores object key order, spaces and indentation, so reformatting does not create false changes. Use it to review API responses, configuration changes or test fixtures. Each change includes its location and before/after values. Paste JSON or open local files, choose how arrays should be compared, then copy or download the complete report. Processing stays in your browser.

Frequently Asked Questions

Paste the original and changed JSON, or open a file in each editor, then select Compare JSON. The side-by-side view highlights changes with red minus signs on the original side and green plus signs on the changed side. Use the arrows to move between changes or download the complete JSON report. No account or file upload to a server is needed.

No. Objects with the same keys and values compare as identical even if their key order, spaces or indentation differ. JSON diff and JSON compare refer to the same structural comparison here; use Text Diff when formatting changes matter.

Yes. By position compares index 0 with index 0, and so on; inserting an item can therefore change later positions. Ignore order compares array contents at every level while still counting duplicates and ignoring object key order. If those contents differ, the entire array is reported as one change. It does not align objects by an ID field.

Readable paths start at $ and quote keys containing punctuation. The report also includes JSON Pointer paths: /user/name identifies a nested field; a literal slash in a key becomes ~1 and a tilde becomes ~0. An empty pointer identifies the whole document. This is a comparison report, not a JSON Patch file.

Each input supports 200,000 characters, 20,000 values and 100 nesting levels. Local files also have an 800 KB limit. Numbers use JavaScript precision; unsafe integers and non-finite numbers are rejected. Put long IDs in quoted strings to preserve their exact digits. Fractional numbers use normal floating-point precision. Duplicate object keys follow JSON.parse behavior: the last value wins.

The tool reads and compares data locally. It does not upload or save your JSON inputs. Downloaded reports contain the compared values, so review their contents before sharing them.