ready
JSON A
JSON B
Added: 0
Removed: 0
Changed: 0
Paste valid JSON into both boxes above to see the differences.

About This JSON Compare Tool

This free JSON compare tool parses two JSON documents and walks them structurally — object by key, array by element — reporting exactly what was added, removed, or changed, each with its full path such as user.roles[1]. Because it compares parsed data rather than raw text, differences in whitespace, indentation, or key order are ignored by default. Turn on Ignore array order to treat arrays as unordered, or Loose type comparison to treat "5" and 5 as equal. Works entirely in your browser — nothing you paste is ever sent to a server.

Common uses: comparing two versions of an API response, checking a config file against a known-good baseline, verifying a database migration produced the expected output, or spotting what changed between two test fixtures.

Related tools: JSON Formatter & Validator · Text Diff Checker

Frequently Asked Questions

How does this JSON compare tool work?+
Paste one JSON document on the left and another on the right. Both are parsed and walked key by key and index by index, so the comparison is structural, not a text diff — key order never matters, only the actual values do. Every difference is listed with its full path, such as user.address.city.
Does this compare JSON as text or as data?+
As data. Both inputs are parsed with JSON.parse and compared value by value, so formatting differences like extra whitespace, indentation, or key order never show up as false differences — only real differences in the data do.
What does "Ignore array order" do?+
By default, arrays are compared position by position, so [1,2] and [2,1] count as different. Turn on Ignore array order to compare arrays as unordered collections instead, so the same elements in a different sequence count as identical.
Are "5" and 5 treated as the same value?+
By default no — a string and a number are different types and are reported as changed. Turn on Loose type comparison to treat a string and a number as equal when they represent the same value, such as "5" and 5.
Can I compare deeply nested JSON objects and arrays?+
Yes. The comparison recurses through nested objects and arrays of any depth and reports each difference with its full dotted or bracketed path, so you can pinpoint exactly where two large payloads diverge.
Does this tool send my JSON anywhere?+
No. Parsing and comparison run entirely in your browser using JavaScript's built-in JSON.parse. Nothing you paste is ever sent to a server, logged, or stored — refresh the page and it's gone.