JSON Diff Checker

Compare two JSON documents and see added, removed, and changed keys as a structural diff rather than a text comparison. Runs locally in your browser.

Work in your browser

Local and private

How to use JSON Diff Checker

Three simple steps, with your content kept on your device.

01

Paste both versions

Add the left and right JSON values you want to compare.

02

Choose array handling

Compare arrays by index or ignore element order entirely.

03

Read the diff

Added, removed, and changed paths are listed with their values.

Built for useful work

Fast, focused, and made to be clear on every screen.

Structural diff

Keys are compared by value and path, not by text, so formatting differences are ignored.

Precise paths

Each change is shown at its exact JSON path, such as settings.theme[1].color.

100% local

Your JSON never leaves the browser tab.

What is a JSON diff checker?

A JSON diff checker compares two JSON documents and reports exactly what changed: keys added, keys removed, and values that differ. It is a structural comparison — it understands objects and arrays instead of treating the documents as plain text.

This makes it the right tool for API responses, configuration files, and data migrations, where the shape of the data matters more than the exact formatting.

Structural diff vs text diff

A text diff compares documents line by line and highlights character changes, which is useful for prose or code. A structural diff understands the JSON grammar and reports semantic differences, ignoring whitespace and key order.

For JSON, the structural approach is far more readable: instead of a wall of changed lines caused by reformatting, you see the few real differences in the data.

How objects and arrays are compared

Objects are compared by key, so the report shows which keys were added, removed, or changed. Arrays are compared by index by default, and an unordered mode compares element sets instead.

Nested objects and arrays are compared recursively, so a change buried three levels deep is still reported accurately at the key that changed.

Comparing JSON in practice

Paste the first version on one side and the second on the other; the result lists every difference between them. You can use it to verify a refactor produced identical output, or to see what a new API version actually changed.

A json comparison like this is also the fastest way to confirm that two configuration files are equivalent apart from the values you intentionally changed.

Diffing API responses

APIs evolve, and responses change between versions. Diffing a captured response against the new one reveals exactly which fields clients must handle — added, removed, or altered.

This workflow turns a vague 'the response looks different' into a precise list of changes, which is exactly what a developer needs before updating a client.

Privacy of your JSON

The comparison runs entirely in your browser. Your documents are never uploaded, stored, or logged, so you can diff sensitive payloads — tokens, personal data, internal configs — without sending them anywhere.

That local-first behavior is the core advantage of this tool over online services that receive your data to compare it.

Comparing configuration files

Configuration files often drift between environments — a setting changed in production but not staging, or a new key added in one version. Diffing them shows every difference clearly.

Because whitespace and key order are ignored, the comparison isolates the meaningful changes instead of drowning them in formatting noise.

Verifying refactors and migrations

After refactoring a serializer, changing a data pipeline, or migrating a database, the output should stay equivalent. Diffing before and after versions confirms that only the intended changes appeared.

A structural json comparison is ideal for this: it proves semantic equivalence regardless of how the documents are formatted.

Understanding the diff report

The report groups changes by type: added keys, removed keys, and modified values, with the changed path shown for each one. Reading the paths tells you exactly where in the structure the difference sits.

This grouping turns a large document pair into a short list of actionable changes, which is the practical output you want when comparing data.

Diffing data exports

Exported datasets change between runs as records are added, removed, or updated. Comparing exports with a json diff reveals exactly which records and fields differ.

It is a fast audit for data pipelines: run the same export twice and confirm the only differences are the expected ones.

Frequently asked questions

Does formatting matter?

No. Whitespace and key order are normalized before comparison, so only real value differences are reported.

How are arrays compared?

By default arrays are compared by index. Switch to unordered mode to compare element sets instead.

What counts as changed?

A key is changed when its value differs in type or content. Nested objects and arrays are compared recursively.