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 Structural compare Copy and download ready
Your JSON is compared only in this browser and never uploaded to a server.

Sample

This settings-style example produces every diff kind in one pass.

Left JSON

Original settings
{
  "meta": {
    "owner": "team-a"
  },
  "service": {
    "enabled": true,
    "features": ["search", "export"],
    "limits": {
      "daily": 10
    },
    "name": "catalog",
    "retries": 2
  },
  "version": 1
}

Right JSON

Updated settings
{
  "meta": {
    "region": "ap-northeast-1"
  },
  "service": {
    "enabled": true,
    "features": ["search", "export", "audit"],
    "limits": {
      "daily": 12
    },
    "name": "catalog-v2",
    "retries": "2"
  },
  "version": 1
}

This sample shows added / removed / changed / type_changed in a single comparison.

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.

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.

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.

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.