JSON Diff Viewer (Compare Two JSON Documents)

Paste two JSON documents side by side and keep only the structural differences.

Added, removed, changed, and type changes are separated so reviews stay fast and readable.

Browser-only processing, with no server upload
Array-aware modes reduce review noise
Export JSON Patch and JSON Merge Patch
Your JSON is compared only in this browser and never uploaded to a server.

Recommended workflow

  1. Clean or sort the JSON first with JSON Formatter or JSON Key Sorter when you want consistent input.
  2. Paste or upload the left and right JSON documents, then run Compare.
  3. Choose the array mode, match keys, tolerance, and path rules that fit the review.
  4. Review the summary, changed paths, tree, and exportable patch output.

Sample

This sample shows how reordered arrays, timestamp changes, tiny floating-point differences, and one added item can be narrowed down with match keys, tolerance, and path rules.

Left JSON

Input
{
  "orderId": "A-1001",
  "updatedAt": "2026-04-16T08:00:00Z",
  "customer": {
    "name": "Acme Corp",
    "tags": ["vip", "beta"]
  },
  "items": [
    {
      "sku": "A-1",
      "qty": 2,
      "price": 10
    },
    {
      "sku": "B-2",
      "qty": 1,
      "price": 4.5
    }
  ],
  "summary": {
    "currency": "USD",
    "total": 24.5
  }
}

Right JSON

Input
{
  "orderId": "A-1001",
  "updatedAt": "2026-04-16T08:05:00Z",
  "customer": {
    "name": "Acme Corporation",
    "tags": ["beta", "vip"]
  },
  "items": [
    {
      "sku": "B-2",
      "qty": 1,
      "price": 4.5
    },
    {
      "sku": "A-1",
      "qty": 2,
      "price": 10.0001
    },
    {
      "sku": "C-3",
      "qty": 1,
      "price": 7
    }
  ],
  "summary": {
    "currency": "USD",
    "total": 24.5001
  }
}

What the sample demonstrates

This sample shows how reordered arrays, timestamp changes, tiny floating-point differences, and one added item can be narrowed down with match keys, tolerance, and path rules.

How to use it

  1. Paste JSON into the left and right editors.
  2. Adjust key order, array order, and display mode if needed.
  3. Run compare, then copy or download the report when you are done.
  4. Copy or download the changed paths, patch, merge patch, or report when you are done.

What it does

  • Compares JSON structures recursively.
  • Separates added / removed / changed / type_changed entries.
  • Switches between tree and list views.
  • Copies the report or downloads it as JSON.
  • Export JSON Patch, JSON Merge Patch, changed paths, and a Markdown report.
  • Collapse unchanged nodes and jump directly to the relevant path.

Spec

  • Key order does not affect the default comparison result.
  • Arrays are compared in order by default, but the behavior can be changed.
  • This tool does not validate JSON Schema.
  • All processing stays in the browser. Nothing is sent to a server.
  • Very large JSON documents depend on browser performance.
  • Large inputs use summary-first rendering and can disable auto-compare.

FAQ

Can key order be ignored?

Yes. The default behavior avoids key-order noise in the result.

Are array positions compared?

Yes, by default. You can change the behavior in the settings panel.

Does it validate JSON Schema?

No. It focuses on structural diffing only.

Is anything uploaded to a server?

No. Comparison happens entirely in your browser.

Is anything uploaded to a server?

No. Comparison, normalization, and export all happen locally in your browser.

What can I export?

JSON Patch, JSON Merge Patch, changed paths, and a Markdown report.