JSON Diff — A line-based diff treats JSON as text. It shows every line that changed, but it cannot tell you that a single key was renamed, that key order shifted, or that one array element was added.
Both JSON values are parsed and compared in your browser. Nothing is uploaded — the diff never leaves your device.
Was JSON Diff useful?
What is json diff?
A line-based diff treats JSON as text. It shows every line that changed, but it cannot tell you that a single key was renamed, that key order shifted, or that one array element was added.
A semantic JSON diff compares the parsed structure. It walks both values, finds the added / removed / changed paths, and shows them in a table. Key order in objects is ignored by default (toggle off if order matters in your case).
How to use it
-
Paste the two JSON values
Drop the "before" JSON in the left panel, the "after" in the right. Both can be objects, arrays, or any JSON value — they do not have to be the same type.
-
Read the table
Each row is a path (e.g. users[3].email). Green rows are added, red rows removed, amber rows changed. Toggle "Show unchanged" to see what stayed the same.
-
Copy the patch
The "Copy patch" button puts a one-line-per-op summary in your clipboard — useful for sharing in chat or in a commit message.
Examples
Detecting a renamed key indirectly
Two objects that differ in one nested value.
Before: {"user":{"name":"Ada","age":30}}
After: {"user":{"name":"Ada","age":31}} Result: 1 changed: user.age 30 → 31
Array element added
An element was added to the end of a tags array.
Before: ["eng","lead"] After: ["eng","lead","reviewer"]
Result: 1 added: [2] "reviewer"
Frequently asked questions
Related tools
JSON Formatter
Format, beautify, and validate JSON with adjustable indentation — instantly in your browser.
JSON Validator
Check whether your JSON is valid and find the exact line and column of any syntax error.
Text Diff
Compare two texts line by line and see exactly what was added, removed, or kept.
JSON Tree Viewer
Paste any JSON and explore it as a collapsible tree. Click any value to copy it, or copy the whole path. Free, runs in your browser, no upload.
API Tester (HTTP Requests)
Make HTTP requests from your browser: GET, POST, PUT, DELETE, with custom headers and body. Import a cURL command, see the full response (status, headers, body) with timing. Free, in browser, no signup.
Last reviewed: 2026-08-21