JSON Diff Checker
Compare two JSON documents and see every added, removed, and changed value listed by its path.
Compared live as you type. Nothing leaves your browser.
Compare arrays
Object keys are matched by name, so reordering fields is never counted as a difference.
Differences
How to compare two JSON files online
Paste both documents
Paste one JSON document into the left field and the other into the right; both are parsed and compared live.
Choose how arrays compare
Keep arrays ordered to match items by position, or compare them as a set when order does not matter.
Read the path report
Every difference is listed by its path and tagged added, removed, or changed, with the old and new values shown.
Copy the summary
Copy the full report to your clipboard to drop into a code review, a ticket, or a commit message.
Why use this tool
Path-by-path differences
Each change is pinned to its exact location, like $.user.tags[2], and labelled added, removed, or changed so you can jump straight to it.
Order-independent object keys
Objects are compared by key name, so reordering fields never shows up as a difference. Only real changes are reported.
Ordered or set array comparison
Compare arrays by position, or treat them as unordered sets to see only which items were added or removed regardless of order.
Type changes made obvious
When a value switches type, such as a number to a string or an object to an array, the report calls out both kinds next to the old and new values.
Both parse errors, separately
If either side is not valid JSON, the exact error for that side is shown on its own, so you know which document to fix first.
Runs entirely in your browser
Everything happens on your device; nothing is uploaded.
About this tool
This JSON diff checker compares two documents structurally rather than line by line. It parses both sides, then walks every object key and array index to classify each path as added, removed, or changed, showing the old and new value for each one. Because objects are matched by key name, reformatting or reordering fields never registers as a change, so the report contains only differences that actually matter.
It is built for the everyday cases where a plain text diff is noisy or misleading: checking what changed between two API responses, confirming a config edit touched only the keys you expected, or spotting the one field that flipped type between two payloads. Arrays can be compared by position, which is right for ordered lists, or as a set when the order of items carries no meaning. An optional loose mode treats a number and its string form as equal and ignores surrounding whitespace in text values, which catches serialization drift between systems.
Everything is parsed and compared on your device, so response bodies full of customer records or tokens never leave the tab. To tidy a single document first, the JSON formatter validates and pretty-prints it, and for prose or code where line-level changes matter more than structure, the text diff highlights edits word by word.
Frequently asked questions
- How does the JSON diff checker work?
- Paste a JSON document into each side and both are parsed and compared as you type. The tool walks every key and array index and lists each difference by its path, tagged added, removed, or changed, with the old and new values. A running count of additions, removals, and changes sits above the report.
- Does the order of object keys matter?
- No. Objects are compared by key name, not by the order the keys appear, so moving a field up or down or reformatting the document is never reported as a difference. Only added keys, removed keys, and changed values show up.
- How are arrays compared?
- By default arrays are compared in order, matching items by position, which suits lists where the sequence is meaningful. Switch to set comparison to treat an array as an unordered collection, where only which items were added or removed is reported and their position is ignored.
- What happens if one side is not valid JSON?
- Each side is parsed on its own, so an error on the left does not hide the right. When a document fails to parse, the tool shows that side’s exact error message, including the position where parsing failed, so you know which input to fix.
- Is my data uploaded anywhere?
- No. Everything runs in your browser; nothing is sent to a server. Both documents are parsed and compared locally on your device and are never uploaded, logged, or retained.
- Can it compare large or deeply nested documents?
- Yes. The comparison runs client-side and the report area scrolls rather than stretching the page, and very large inputs are capped so the tab stays responsive. For enormous documents, comparing smaller sections gives the most complete report.
Related tools
JSON Formatter & Validator
Pretty-print, minify, or explore JSON as a collapsible tree, with syntax errors shown inline.
Text Diff Checker
Compare two texts and see every addition and deletion highlighted, by word, line, or character.
JSON to YAML
Convert JSON to YAML and YAML back to JSON, in both directions, with your choice of indentation.
API Key Generator
Generate cryptographically random API keys and tokens in hex, base62, or base64url, with control over length, an optional prefix, and bulk output.
ASCII Table Reference
The full ASCII character set with decimal, hex, octal, binary, and HTML codes. Search by code, character, or name.
Atbash Cipher
Mirror the alphabet so A swaps with Z, B with Y, and so on. Atbash is its own inverse, so one field both encodes and decodes as you type.