How to use the JSON Diff Tool
Compare two JSON documents — API responses, fixtures, config snapshots, or schema dumps — and see exactly which keys, values, or array entries differ. The JSON Diff tool is order-insensitive by default, so key reorderings and equivalent-but-shuffled arrays do not show as false positives. Everything runs locally in your browser; payloads are never uploaded.
What it does
- Structural diff of two JSON values (objects, arrays, primitives).
- Order-insensitive comparison of object keys.
- Optional array-order-insensitive mode for sets of records compared by value or by key.
- Color-coded changes: added, removed, changed, and type changed.
- Drill into nested differences, view full values, and copy individual diff entries.
- Handles large payloads with collapsible nodes and JSON Pointer paths for each change.
When to use it
- Compare an API response before and after a code change.
- Validate test fixtures against actual responses without flaky key-order failures.
- Review serialization changes across service versions or libraries.
- Audit a config snapshot before vs after a deploy.
- Diff an OpenAPI / JSON Schema file across branches.
- Reconcile two ETL outputs that should be equivalent but rendered differently.
How to use it
- Paste the baseline JSON on the left and the candidate JSON on the right (or load from clipboard / file).
- Both inputs are parsed and validated — invalid JSON is flagged with a parse error you can fix in the editor.
- Choose comparison options: order-insensitive keys (on by default), array-as-set, ignore null values, ignore specific paths.
- Browse the diff tree: each entry shows the JSON Pointer path, the old value, and the new value.
- Click a row to inspect the full value (useful for large strings, base64, or nested objects).
- Copy individual diffs or the full report for tickets, PRs, and incident notes.
Tips & pitfalls
- If a small key change appears to rewrite the whole document, you are probably comparing as text — make sure the JSON Diff tool (not the Text Diff) is being used.
- Arrays of objects compared by index can show as fully changed when items shifted by one — try array-as-set or match-by-id.
- Numbers that look equal but differ in precision (e.g.,
1 vs 1.0) may show as changed depending on parser semantics.
- Pre-format both inputs with the JSON Formatter if they fail to parse.
- Strip secrets / PII before sharing diffs — the tool can produce a sanitized report when redaction is enabled.
FAQ
- How do I diff two JSON files online? Paste each file's contents into the left and right editors. The diff appears automatically with the path to each change.
- Does this ignore key order? Yes — JSON objects are unordered by spec, so the diff is order-insensitive by default and only reports true value changes.
- Can I compare arrays as sets? Yes — toggle array-as-set when array order is not meaningful, so re-ordered arrays no longer show as differences.
- Is JSON Diff better than text diff for JSON? Almost always — text diff treats key reordering, whitespace, and formatting as changes. JSON Diff compares the actual structure.
- Is my JSON uploaded anywhere? No. Parsing and diffing happen entirely in your browser, with no analytics on payloads.
- What is the JSON Pointer path shown in each diff row? A standard RFC 6901 path that uniquely identifies the changed location inside the document.
Runs locally in your browser. No uploads. Share links use an encrypted URL fragment — nothing is sent to a server.