JSON Diff & Compare

Compare two JSON documents and highlight added, removed and changed key paths.

Loading tool…

JSON Diff & ComparePaste two JSON documents side by side and this tool performs a structural, key-by-key comparison instead of a plain line diff, so reordered keys and whitespace never produce false changes. Each difference is reported by its exact path, such as user.name or items[0], and labelled as added, removed, or changed. Everything is parsed and compared entirely in your browser, so your data never leaves your device.

What is JSON Diff & Compare?

JSON Diff is a free, in-browser tool that finds the semantic differences between two JSON values. Rather than diffing text line by line, it walks both trees and matches keys by name and array items by index, reporting every change with a dotted path like config.server.port or list[2]. Backend and API developers use it to see exactly what changed between two API responses, config files, or fixtures, while QA engineers and data analysts use it to confirm that a transform or migration produced the expected output. Choose the Symbol style to read changes as + / - / ~ lines, or the Word style to label them as added, removed, and changed. The Swap button flips the left and right inputs so you can view the diff from either direction.

How to use JSON Diff & Compare

  1. Paste the original JSON into the Left (original) box.
  2. Paste the JSON you want to compare against into the Right (changed) box.
  3. Read the diff in the Result block, where each line shows the changed path and value.
  4. Use the Style setting to switch between + / - / ~ symbols and added / removed / changed words.
  5. Click Swap to reverse the two sides, or Copy to grab the full diff report.

Examples

A single value changed

Input

Left: {"name":"Ada","age":30}
Right: {"name":"Ada","age":31}

Output

~ age: 30 -> 31

A key added and one removed

Input

Left: {"a":1,"b":2}
Right: {"a":1,"c":3}

Output

- b: 2
+ c: 3

Reordered keys are identical

Input

Left: {"x":1,"y":2}
Right: {"y":2,"x":1}

Output

No differences - the two documents are equal.

Frequently asked questions

Is my JSON sent to a server?
No. Both documents are parsed and compared entirely in your browser with a deep-diff routine that runs on your device. Nothing is uploaded, and the tool keeps working offline.
How is this different from a normal text diff?
A text diff compares lines, so reformatting or reordering keys looks like a change. This tool compares the parsed structure, matching object keys by name and array items by position, so only real semantic differences are reported.
Does key order matter?
No. Two objects with the same keys and values are treated as equal regardless of the order the keys appear in. Array elements, however, are compared by index, so reordering an array does count as a change.
What does each line mean?
Added paths exist only on the right, removed paths exist only on the left, and changed paths have different values on each side. In Symbol style these appear as +, -, and ~; in Word style they are spelled out.
What happens if my JSON is invalid?
If either side fails to parse, an error note tells you which side (left or right) is invalid so you can fix it. The diff updates automatically once both sides parse cleanly.

Related tools