JSON Diff — Compare JSON

Compare two JSON documents structurally and see every added, removed and changed field with its exact path.

Paste JSON into both panels and press Compare...
30.962 viewsYour data is processed in your browser and never sent to a server.

Related tools

JSON Formatter
Validate, beautify and minify JSON online. Everything runs in your browser — free and private.
Base64 Converter
Encode or decode Base64 text instantly in your browser. Free and private.
URL Encoder
Encode or decode URLs and query strings instantly in your browser. Free and private.
Color Picker
Pick any color and instantly get its HEX, RGB and HSL codes for CSS and design tools. Free, private, runs in your browser.

Get to know this tool

JSON Diff compares two JSON documents the way a developer actually thinks about them — structurally, field by field — instead of as lines of text. Paste the original and the changed version, press Compare, and get a precise list of everything that was added, removed or modified, each with its exact path like config.languages[1]. Both documents stay in your browser.

What is a JSON Diff and Why is it Useful?

Text-based diffs are noisy for JSON: reordering keys, changing indentation or reformatting produces walls of "changes" that don't matter. A structural diff parses both documents first and compares actual values, so only real differences surface. That makes it the right tool for comparing API responses between environments, reviewing configuration changes before deployment, debugging "works locally, fails in prod" mysteries, verifying data migrations, and checking what a third-party webhook actually changed between calls.

Key Features

  • True structural comparison: Key order and formatting are irrelevant — only values matter.
  • Precise paths: Every difference is reported with its full JSON path, including array indexes.
  • Three-way classification: Added (green), removed (red) and changed (amber) entries, with before → after values shown inline.
  • Summary counts: Instantly see the scale of the change: how many fields were added, removed or modified.
  • Order-insensitive array option: Optionally treat ["a","b"] and ["b","a"] as equal for primitive arrays.
  • Validation built in: Broken JSON is flagged per panel with the field highlighted, before any comparison runs.
  • Copyable report: Export the diff as a plain-text list for commit messages, tickets or code reviews.

How to Use the JSON Diff Tool?

  1. Paste the original JSON into the left panel and the new version into the right one.
  2. Enable Ignore order in primitive arrays if array ordering doesn't matter for your data.
  3. Press Compare — parse errors, if any, are pointed out per panel.
  4. Read the classified list of differences; each row shows the path and the value change.
  5. Use Copy Report to share the findings, or Swap Sides to view the change from the other direction.

Why Choose This Tool?

Configuration files and API payloads often contain secrets, tokens and personal data — pasting them into a random online differ that uploads to a server is risky. This tool parses and compares entirely in your browser with zero network requests. The structural approach also saves real time: instead of scanning a 300-line text diff caused by reformatting, you see the three fields that actually changed.

Frequently Asked Questions (FAQ)

How is this different from a text diff?

A text diff compares lines, so formatting and key order create false positives. This tool parses the JSON and compares the data itself — {"a":1,"b":2} and a reordered, reindented {"b":2,"a":1} are reported as identical.

How are arrays compared?

By index, by default: element 0 against element 0, and so on. For arrays of simple values where order is irrelevant, enable the ignore-order option and they'll be sorted before comparison.

Is there a size limit?

The tool comfortably handles typical API responses and config files (several megabytes). Comparison runs only when you press the button, so typing stays responsive even with large documents.

Is my JSON uploaded anywhere?

No. Parsing and diffing happen entirely in your browser's memory; nothing is transmitted or stored.