JSON Diff (Structural)

Compare two JSON objects structurally. See added, removed, and changed keys with JSONPath output.

Runs locallyNo sign-upKeyboard first
OriginalLeft side · before
ModifiedRight side · after
Diff+ added · − removed · ~ changed — Copy exports a JSON Patch
changed: $ Object{8}
name: "DevPrix Tools"
changed: version: "2.0.0" to "3.0.0"
changed: description: "Developer tools suite" to "Developer productivity suite"
changed: config Object{4}
changed: theme: "dark" to "auto"
language: "en"
changed: maxItems: 100 to 200
changed: features Object{4}
search: true
changed: export: false to true
notifications: true
added: analytics: true
changed: users Array(3)
changed: [0] Object{3}
id: 1
name: "Alice"
changed: role: "admin" to "superadmin"
[1] Object{3}
id: 2
name: "Bob"
role: "editor"
changed: [2] Object{3}
changed: id: 3 to 4
changed: name: "Charlie" to "Diana"
changed: role: "viewer" to "admin"
changed: tags Array(4)
[0]: "tools"
[1]: "dev"
[2]: "web"
added: [3]: "productivity"
removed: deprecated: true
added: license: "MIT"
13 differences · 12 unchanged+3 added−1 removed~9 changedProcessed locally

What is JSON Diff?

JSON diff compares two JSON documents structurally rather than as plain text. It understands JSON semantics — it ignores key ordering, properly compares nested objects and arrays, and shows exactly which values changed, were added, or were removed. This gives more meaningful results than a text-based diff when comparing JSON data.

Common use cases

  • Comparing API responses between environments (dev vs prod)
  • Reviewing configuration changes in JSON files
  • Detecting unintended changes in JSON data exports
  • Comparing database document snapshots
  • Validating JSON transformations and migrations

How to use

  1. 1Paste the original JSON on the left and the modified JSON on the right (or drop files).
  2. 2Read the Tree or List view: + added, − removed, ~ changed; filter, or match array items by an ID field.
  3. 3Press Compare (⌘↵) for a summary, then copy or download the RFC 6902 JSON Patch.

Frequently asked questions

Why use JSON diff instead of text diff?

Text diff treats JSON as plain text, so reordering keys or changing indentation shows as changes. JSON diff understands the structure — {"a":1,"b":2} and {"b":2,"a":1} are considered equal because JSON objects are unordered by specification.

How does it handle arrays?

Arrays are compared positionally — element at index 0 is compared with element at index 0, etc. Added or removed elements at the end are shown as additions/deletions. Arrays are ordered in JSON, so [1,2] and [2,1] are different.