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
Tools
Guides
- Semantic JSON Diff vs Text Diff: Key Order, Array Order, and Type Coercion
- Converting CSV to JSON: Where It Actually Goes Wrong
- Generating Mock JSON Data From a Schema — Seeds, Determinism, and What Gets Faked
- JSON Formatting and Validation: What Actually Trips People Up
- What "Required" Means When You Infer a JSON Schema From Samples
- JSON Schema vs Zod: They Solve Different Halves of the Same Problem
- quicktype vs Live Types: Different Jobs, Not Direct Competitors
- "Unexpected Token in JSON at Position 0" — What It Actually Means
- XML to JSON Conversion: Attributes, Mixed Text, and Why Repeated Tags Become Arrays
- Fixing Double-Encoded JSON Strings (JSON.stringify Twice)
- Detecting Breaking Changes in a JSON API Response
- JSON vs YAML for Config Files
Advertisement