JSON diff

Paste two JSON documents separated by --- to see a structural diff.

Runs in your browser Instant No signup, no tracking

About this tool

A structural diff for JSON. Paste two documents separated by a line containing exactly `---`. The tool walks both trees and reports additions (`+`), removals (`-`), and changes (`~`) with a dotted path so you can jump straight to the difference. Unlike a text diff, key order doesn't matter — `{a:1,b:2}` and `{b:2,a:1}` are treated as equal. Arrays are compared by index.

Example

Paste the input on the left and you will get output like this:

Sample JSON A --- JSON B

{
  "name": "Ada",
  "roles": ["admin", "author"],
  "meta": { "active": true }
}
---
{
  "name": "Ada",
  "roles": ["admin", "editor"],
  "meta": { "active": false, "last_login": "2024-01-01" }
}

Resulting Diff

~ roles[1]: "author" → "editor"
~ meta.active: true → false
+ meta.last_login: "2024-01-01"

How to use JSON diff

  1. Paste or type your JSON A --- JSON B into the left pane.
  2. The Diff appears instantly in the right pane. Conversion runs in your browser — nothing is uploaded.
  3. Copy the result to your clipboard or download it as a file.

FAQ

Is key order significant?
No. Two objects with the same keys and values in different orders are considered equal.
How are arrays compared?
By index. Reordered arrays will show up as every element having changed.
Can I diff YAML?
Convert both documents to JSON first with the YAML to JSON tool, then paste them here.