JSON Diff & Compare
Compare two JSON documents and highlight added, removed and changed key paths.
JSON Diff & Compare — Paste 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
- Paste the original JSON into the Left (original) box.
- Paste the JSON you want to compare against into the Right (changed) box.
- Read the diff in the Result block, where each line shows the changed path and value.
- Use the Style setting to switch between + / - / ~ symbols and added / removed / changed words.
- 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
Base32 / Base58 Encode / Decode
Encode text to Base32 (RFC 4648) or Base58 (the Bitcoin alphabet) and decode either one back to text, fully UTF-8 safe and entirely in your browser.
Base64 Encode / Decode
Encode text to Base64 or decode Base64 back to text (UTF-8 safe).
Case Converter & Counter
Change text case and count characters, words and lines.
Code Formatter & Minifier
Beautify or minify HTML, CSS and JavaScript instantly in your browser, with 2-space, 4-space or tab indentation and Terser-powered JavaScript compression.