Skip to content

JSON Diff Checker

New

Developer Tools

Compare JSON values structurally. Ignore whitespace and object key order while detecting added, removed, and changed values at JSON Pointer paths. Large numbers remain exact.

Tool workspace

Object key order and whitespace are ignored. Arrays compare by index. Numbers remain exact, including large integers. Paths use JSON Pointer; an empty path means the root. Duplicate keys are rejected. Each input is limited to 200,000 characters, 80 nesting levels, and 20,000 values.

Enable JavaScript to activate these controls and process your input in the browser.

πŸ“

How to Use JSON Diff Checker

Use the controls above, then check the example and limitations below.

1

Paste two JSON documents

Put the original on the left and updated data on the right.

2

Inspect pointer paths

Review added, removed and changed values. /roles/1 means the second roles array item.

3

Export differences

Copy the report or download json-differences.json for review.

πŸ’‘

What is JSON Diff Checker & How Does It Work?

A structural comparison answers whether JSON values changed, even when a formatter rearranges keys or changes indentation. Objects compare by key, arrays by index, and primitive values by type and value. Each reported path identifies an addition, removal, or replacement.

Numeric literals are compared using exact decimal normalization, so large identifiers do not collapse into the same floating-point value. Equivalent forms such as 1.0 and 1e0 compare equal. Duplicate object keys are rejected because their interpretation is ambiguous. The comparison is bounded to 200,000 characters per input, 80 nesting levels, 20,000 values, and 5,000 differences.

⚑

Key Features & Benefits

βœ“

Structural semantics

Whitespace and object key order do not produce noise.

βœ“

Lossless numbers

Large integers and exponent notation compare without rounding.

βœ“

Safe key handling

Keys such as __proto__ are treated as ordinary data.

🎯

Common Use Cases

✦

API response review

Adding editor to [reader] produces an added value at /roles/1.

✦

Configuration changes

Changing true to the string "true" is reported as a type and value change.

Frequently asked questions

No. Object key order and formatting are ignored. Arrays compare by position, so moving an array item can produce several changed positions.

Numeric literals are normalized as exact decimal values without floating-point conversion. 1, 1.0 and 1e0 are equal; 9007199254740992 and 9007199254740993 are different.

Paths use JSON Pointer. /roles/1 identifies the second array item in roles. ~1 escapes a slash in a key and ~0 escapes a tilde. An empty path refers to the whole document.

Explore complementary utilities for your workflow

View all in Developer Tools β†’