JSON Diff

Paste two JSON documents to recursively compare objects and arrays. Spot added, removed, and changed fields for API regressions and config migrations.

Privacy: processed locally, never uploaded.

↓ Paste in the input area below to see results instantly

Paste two JSON documents and compare field-level differences.

JSON A (left)

JSON B (right)

Diff output

Diff output

~ version: 1 β†’ 2
+ ready: true

Notes

Diff symbols

+ means added in B, βˆ’ means only in A, ~ means value changed at the same path. Nested objects and arrays are compared recursively.

Paste two JSON documents to recursively compare objects and arrays. Spot added, removed, and changed fields for API regressions and config migrations.

Quick start

  1. Paste JSON A and B

    Objects and arrays supported; strict JSON syntax required.

  2. Click Compare

    Results list each path with + / βˆ’ / ~ symbols.

Features and use cases

Structural diff of two JSON documents with added/removed/changed paths after optional formatting.

Use for API contract regression, config drift, LLM JSON compares, and DB export diffs.

Symbol legend

+ path added in B; βˆ’ only in A; ~ value changed at the same path.

Typical Workflow

The most common scenario is API change verification. Paste the old API response on the left and the new version on the right. The tool highlights field changes, like a new 'discount' field or missing 'expired_at', preventing oversight of critical modifications.

Another practical use is config migration checks. Compare database config JSONs between dev and prod environments to ensure sensitive fields like ports and passwords match. Array order differences are marked blue, while value changes appear red, visually distinguishing structural from content changes.

Examples

Version bump

Input

{"version":1}

Output

{"version":2,"ready":true}

FAQ

Does array order matter?

Compared by index; reordering shows as multiple ~ or +/βˆ’ entries.

Why are arrays [1,2,3] and [3,2,1] marked as different?

By default strict mode treats different array orders as changes. Check "Ignore array order" option if available. Note this may hide real business logic issues, like queue processing that relies on order.