JSON Diff Tool

Compare two JSON objects side-by-side. Highlight added, removed, and changed keys instantly. Free online JSON diff tool.

When working with APIs, configuration files, or data pipelines, you often need to compare two versions of a JSON document to understand exactly what changed. Doing this manually is error-prone, especially for deeply nested structures with dozens of keys. A dedicated JSON diff tool highlights additions, removals, and modifications precisely and instantly.

Paste each JSON object into the left and right panels. Format them first if they are minified. Then run the comparison to see differences color-coded by type: added keys appear in green, removed keys in red, and changed values are highlighted so you can spot them without scanning the entire document.

Common use cases include comparing API response payloads before and after a deployment, checking whether a configuration file changed between environments (development vs. staging vs. production), diffing feature flag JSON exported from different systems, and verifying that a data migration preserved all the original fields and values correctly.

All comparison logic runs locally in your browser. Your JSON never leaves your device, which is particularly important when working with authentication tokens, customer data, or proprietary configuration structures that should not be sent to third-party servers.

JSON 1

Drag and drop a JSON file here

or paste JSON directly

JSON 2

Drag and drop a JSON file here

or paste JSON directly

Why a structural diff beats a text diff

You could paste two JSON blobs into any text-diff tool and see line-level differences, but the result is usually full of noise. Different keys are ordered differently, different formatters use different indentation, and the same value may be written as 1 vs 1.0. A structural diff parses both sides first and compares them as trees, so only semantically meaningful changes show up.

Typical workflows

  • API version bumps. Capture a response from the old version and the new version of an endpoint. The diff shows exactly which fields were added, removed, or renamed — the information you need for your client-side release notes.
  • Config drift. Export your staging and production feature flags as JSON. The diff surfaces accidental divergence between environments, which is often the root cause of "works on stage, broken in prod" bugs.
  • Pull-request review. Copy a JSON fixture from the main branch and the PR branch. A structural diff makes it easy to spot unintended changes when the PR supposedly only "added one field".
  • Data migrations. Export a document before and after the migration script runs. Confirm that only the fields you intended to touch actually changed.

Limitations to be aware of

Arrays are compared positionally: if you reorder two equivalent items in a list, a structural diff will report both positions as changed. For unordered collections (tags, permissions, member lists), consider sorting both sides before comparing, or treat the list as a set in your own validation script.

Numeric precision can also produce surprising results. JSON numbers are IEEE 754 doubles, so 0.1 + 0.2 is not exactly 0.3. If the two sides came from different languages, expect small deltas on floating-point fields and decide whether your comparison needs an epsilon tolerance.

Frequently Asked Questions