Home/Developer Tools/JSON Diff Tool

Free JSON Diff Tool — Compare Two JSON Objects Instantly (2026)

Compare two JSON objects side-by-side and instantly see what was added, removed, or changed. Nested key paths, color-coded results, downloadable diff report. No login, no server — all processing runs in your browser.

{ }

Paste JSON into both panels above to see the diff

Or click “Load Sample JSON” to try an example

Sponsored

Sponsored banner

Added / Removed / Changed

Color-coded diff: green for added keys, red for removed, orange for changed values, gray for unchanged.

Nested Key Paths

Differences in nested objects shown as dot-notation paths (e.g., user.address.city) for precise location.

Summary Statistics

At-a-glance counts of added, removed, changed, and unchanged keys so you can assess the scope of changes.

Download diff.json

Export the structured diff as a JSON file for documentation, CI pipelines, or sharing with teammates.

Copy as Text Report

Copy a plain-text diff report to paste into Slack, GitHub issues, or tickets.

Semantic Comparison

Compares parsed data — not text — so formatting differences are ignored. Two identical JSONs always show zero diff.

JSON Diff — Why Semantic Comparison Beats Text Diff

When two developers format a JSON file differently — one uses 2-space indent, another uses 4-space — a text diff tool (like git diff) shows the entire file as changed. A semantic JSON diff ignores formatting and compares the actual data: keys and values at each path. Two JSONs that are textually different but logically identical always show zero changes.

This tool performs deep structural comparison. For nested objects it recurses into each level, tracking the full path. A change to server.database.pool.maxConnections shows up with that exact path — not as a mysterious line change on line 47 of a 200-line file.

+
Added
Key in B, not in A
Removed
Key in A, not in B
~
Changed
Key in both, different values

Who Uses JSON Diff?

API Version Comparison

Spot what changed between two API response versions after a deployment

Config Review

Compare dev, staging, and production configs to find accidental differences

Code Review Support

Add a semantic diff report to pull requests for data-heavy changes

Debugging State Changes

Compare before/after snapshots of application state to find the source of bugs

DB Migration Validation

Verify schema changes didn't break existing data structure contracts

Feature Flag Audits

Compare feature flag configs across environments to ensure consistency

Related Tools

{}

JSON Formatter

Format, validate, and auto-repair JSON with live preview, syntax error detection, sort keys A-Z, and one-click copy or download

{}↓

JSON Minifier

Compress JSON by removing all whitespace. Shows original size, minified size, bytes saved, and percentage reduction.

JSON to CSV Converter

Convert JSON arrays to CSV and CSV back to JSON. Nested object flattening, multi-delimiter support, type detection.

JSON to YAML Converter

Convert JSON to YAML for Kubernetes, Docker Compose, and config files. Also converts YAML back to JSON.

🌲

JSON Tree Viewer

Visualize JSON as an interactive collapsible tree with color-coded types, live search, and node statistics.

JSON to XML Converter

Convert JSON to well-formed XML with configurable root element. Also converts XML back to JSON using browser DOMParser.

JSON to SQL Converter

Convert JSON arrays to MySQL, PostgreSQL, or SQLite INSERT statements with auto type detection, CREATE TABLE, and batch insert support.

Cron Expression Generator & Explainer

Build cron expressions visually, explain any expression in plain English, preview next 10 run times, and convert to AWS EventBridge, Spring/Quartz, Kubernetes, and GitHub Actions formats.

✓→

TODO Formatter

Format and organize TODO comments for better readability.

QR Code Generator

Generate QR codes for URL, WiFi, vCard, UPI payment, WhatsApp, email, SMS, and 5 more types with color customization and logo overlay

🔑

JWT Decoder

Decode, verify, and build JSON Web Tokens. Inspect all claims with explanations, verify HS256/RS256/ES256 signatures via Web Crypto API, and generate signed JWTs — no server required.

🔗

Slug Generator

Generate SEO-friendly URL slugs in 8 formats — kebab, snake, camelCase, PascalCase, and more

Frequently Asked Questions

  • What is a JSON diff tool?

    A JSON diff tool compares two JSON objects and shows the exact differences between them — which keys were added, which were removed, which had their values changed, and which remain the same. Unlike plain text diff tools, a JSON diff understands the data structure: it compares key-value pairs semantically, not just line-by-line, giving meaningful results even when the JSON is formatted differently.

  • What does Added, Removed, Changed, and Unchanged mean?

    Added (+): A key exists in JSON B but not in JSON A — it was newly introduced. Removed (−): A key exists in JSON A but not in JSON B — it was deleted. Changed (~): The key exists in both but the value is different. Unchanged (=): The key and value are identical in both JSONs. The summary counts at the top show totals for each category.

  • Does JSON diff work on nested objects?

    Yes. The diff engine recurses into nested objects and shows paths using dot notation (e.g., address.city, user.role). Each key in the path represents one level of nesting. Arrays are compared as a whole value — if two elements at the same index differ, the entire array path is marked as Changed. For granular array-level diffing, compare array elements manually.

  • Can I compare JSON arrays with this tool?

    The current diff engine is optimized for JSON objects (key-value maps). Arrays passed as root-level values will show a 'must be JSON objects' error because array comparison requires index-based matching which has different semantics. To compare two arrays, wrap each in an object: {"data": [...]} and then diff the two objects.

  • How are deeply nested paths shown?

    Paths use dot notation. For example, if the 'address' object inside 'user' has a changed 'city' key, the path appears as user.address.city. This makes it clear exactly where in the JSON structure each change occurred, even for deeply nested configurations with 5 or more levels of nesting.

  • What is the most common use case for JSON diff?

    The most common use case is comparing API responses — for example, checking what changed between two versions of an API response after a deployment. Other common uses: comparing configuration snapshots before and after changes, reviewing differences between environment configs (dev vs staging vs production), and debugging state changes in applications.

  • Can I download the diff result?

    Yes. Click 'Download diff.json' to download a structured JSON file containing a summary (counts of added/removed/changed/unchanged) and the full list of diff entries with path, status, original value, and new value. This is useful for storing diff records, sharing with team members, or processing programmatically.

  • What does the diff ignore?

    The diff compares values structurally using JSON.stringify for non-object types, so it ignores whitespace differences in the JSON text itself (formatting). It does NOT ignore key ordering in objects — the diff compares key presence and values, not position. It is case-sensitive for both keys and string values.

  • Can I copy the diff result as text?

    Yes. Click 'Copy Diff Report' to copy a plain-text summary to your clipboard. The text report shows each changed path with a symbol (+, −, ~, =) and the before/after values. You can paste this directly into a Slack message, GitHub issue, or Jira ticket to communicate changes to your team.

  • Does this tool work offline?

    Yes. All diff computation runs in your browser using JavaScript. After the page loads, you can disconnect from the internet and the tool will continue working. No data is ever sent to any server. This makes it safe for comparing sensitive configuration data, API credentials, or internal service configurations.

  • How is this different from a text diff (like git diff)?

    A text diff like git diff compares line by line, so reformatting a JSON file (changing indentation) shows hundreds of 'changed' lines even though the data is identical. A JSON diff compares the parsed data structure, ignoring formatting. Two JSONs that are textually different but semantically identical will show zero differences.

  • Is the JSON diff tool free?

    Yes, completely free with no usage limits. Paste two JSON objects, see the diff instantly, download the result, copy the report — all free, no login required. All processing is browser-based and your JSON never leaves your device.