Developer Tools

JSON Diff

Compare two JSON objects and see exactly which keys were added, removed, or changed — instantly inside your browser.

Private by default Instant results No signup
JSON DiffLive
2 differences
~ age: 30 31
+ active: true
Overview

What does this tool compare?

A plain text diff highlights line changes, but two JSON objects can look completely different as text while being nearly identical in structure — or vice versa. This tool parses both JSON documents and walks their structure key by key, reporting exactly which fields were added, removed, or changed, at any nesting depth.

Guide

How to use it

1Paste the original JSON on the left
2Paste the changed JSON on the right
3Review the list of differences

How the comparison works

Both documents are parsed and walked recursively, key by key for objects and index by index for arrays. A key that exists only in the second document is reported as added, a key that exists only in the first is reported as removed, and a key whose value differs between the two is reported as changed, with its path shown using dot and bracket notation (like user.roles[0]).

Why it helps

Features & benefits

Structural comparison, not just text diffing
Works at any nesting depth, including arrays
Clearly labels each change as added, removed, or changed
Live results as you edit either side
100% private — nothing leaves the device

Why this runs entirely in your browser

Comparison runs in JavaScript locally in the tab, which means it keeps working offline once the page has loaded and nothing pasted here is ever sent to a server.

Common uses

Comparing two versions of an API response to spot a breaking change, checking what changed between two config file snapshots, or verifying a data transformation produced the expected result.

Frequently asked questions

A few things people usually want to know before trusting the numbers.

No. Since this compares the actual parsed structure rather than the raw text, reordering keys within an object doesn't count as a difference.

Array items are compared by their position (index), shown as path[0], path[1], and so on — reordering items in an array will show up as changes even if the same items are present.

It means the entire top-level value changed, which happens when the two JSON documents aren't both objects or arrays with matching structure to compare key by key.

A clear error is shown instead of a diff, so you know to fix the JSON before comparing.

No. All comparison happens locally in your browser. Nothing pasted here is sent to a server, stored, or shared.