JSON Diff Viewer

Cmd/Ctrl+Enter saves "Before" to history.

Changes

Paste JSON in both fields.

Advertisement

Paste two JSON payloads and see exactly what was added, removed, or changed, down to a specific nested path like data.items[2].price. Arrays are compared element-by-index, not by matching content — a reordered array shows every shifted position as a change, which matters most when comparing two versions of an API response for contract drift.

Frequently asked questions

How are array elements compared — by position or by content?
By index. Element 0 in "before" is compared against element 0 in "after", and so on — an array with the same items in a different order shows every shifted element as changed, not as a no-op reorder.
What does a path like a.b[2].c mean in the results?
It's the location of the change: object key a, then key b, then the 3rd element of that array (0-indexed), then key c — the same dot/bracket notation you'd use to access that value in JS.
Does it show a diff for values that only differ in key order?
No — object keys are compared by name, not position, so { "a": 1, "b": 2 } and { "b": 2, "a": 1 } are treated as identical.
Is my JSON uploaded anywhere?
No. Comparison happens locally in your browser tab — nothing is sent to a server.

Read the full guide for this tool →

Related tools & guides

Part of JSON Tools: Format, Validate, Diff, Convert, and Generate Types

Advertisement