JSON Diff
Compare two JSON documents structurally, ignoring key order and formatting.
Processing: This tool runs entirely in your browser. Your input and any file you open stay on your device — nothing is uploaded to a server.
How to use the json diff
- Paste the original JSON on the left.
- Paste the changed JSON on the right.
- Read the differences, each with its path.
About this tool
A text diff on JSON is mostly noise. Reformat a document or reorder its keys and every line changes, while the data is identical. This compares the parsed structure instead, so formatting and key order are correctly reported as no change at all.
Every difference is listed with its full path and both values, separated into added, removed, changed and type-changed. The type category is worth its own line: a field going from the number <code>1</code> to the string <code>"1"</code> looks almost identical in a text diff and breaks strict comparisons downstream.
One genuine limitation, stated because it will bite otherwise: arrays are compared by position. Insert an element at the start of an array and every later element is reported as changed. That is accurate — position one really did change — but it is rarely what you wanted to read. Matching array elements by identity instead requires knowing which field is the identity, which the tool cannot guess.
Everything happens in the page. JSON commonly carries API keys, personal records and internal identifiers, so nothing here is uploaded, logged or sent to a server — which is exactly why a browser tool is the right place to inspect it.
Common uses
- Checking what changed between two API responses.
- Comparing configuration between environments.
- Verifying a migration produced the data you expected.
Frequently asked questions
- Does key order count as a difference?
- No. Object key order carries no meaning in JSON, so it is ignored. Only structure and values are compared.
- Why does inserting one array item show so many changes?
- Arrays are compared by position, so everything after the insertion shifts. It is accurate but noisy — matching by identity would require knowing which field identifies an element.
- What is a type change?
- The same path holding a different type, such as 1 becoming "1". It is called out separately because it is easy to miss and often breaks strict comparisons.
Related tools
JSON Sorter
Sort JSON object keys alphabetically at every level, leaving arrays alone.
JSON Formatter
Format, validate and minify JSON with clear error messages that point at the exact position.
JSON Viewer
Explore JSON as a collapsible tree, with node counts, depth and located errors.
Text Diff Checker
Compare two blocks of text line by line and highlight what was added, removed and unchanged.