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.
- Can JSON Diff ignore array order? Yes. The diff is order-insensitive: it matches array elements and object keys by value, so reordered arrays or keys are not reported as changes. Only real additions, deletions, and value changes are surfaced.
Runs locally in your browser. No uploads. Share links use an encrypted URL fragment — nothing is sent to a server.
Related guides