What does the JSON Diff tool do?
Structurally compares two JSON documents and highlights added, removed, and changed paths. Export RFC 6902 JSON Patch or merge patch—all in your browser.
Diff runs in a Web Worker in your browser. Object keys are unordered; arrays default to index order unless you ignore order or match by key. Exports RFC 6902 JSON Patch and RFC 7396 merge patch. Not a certified merge tool for conflicting edits.
Skip to JSON diff toolPaste two JSON payloads and see exactly what changed—tree or side-by-side views, ignore paths, array options, and JSON Patch export. Ideal for API regression and config reviews.
Comparing Alice's profile versions highlights 3 modified paths (/age, /address/city, /address/zip), 2 added (/email, /tags/2), and optional ignore for noisy /updatedAt timestamps.
Paste left/right JSON in the tool below— structural diff runs in your browser (Web Worker). Export RFC 6902 JSON Patch or RFC 7396 merge patch. Validate syntax first with the JSON Validator or format with the JSON Formatter.
Structural diff
See added, removed, and modified keys in tree or side-by-side views.
RFC 6902 + merge patch
Copy JSON Patch, merge patch, markdown summary, or download artifacts.
Runs locally
Diff runs in a Web Worker in your browser—JSON is not uploaded.
Object keys are unordered by default. Arrays compare by index unless you ignore order or match by key. Patch export uses RFC 6902; merge patch uses RFC 7396.
A JSON diff tool compares two JSON documents structurally and highlights added, removed, and changed values—ignoring whitespace and (by default) object key order—so you can debug API responses and configs without noisy text diffs.
A JSON diff tool compares two JSON documents and reports exactly where they differ: added keys, removed keys, changed values, and nested structural changes. Unlike a plain text diff, it parses both inputs first, so formatting differences (whitespace, indentation) do not count as changes. Object keys are unordered in JSON, so reordering keys alone is not treated as a difference.
This EverydayTools page runs the comparison in your browser (Web Worker). You can ignore noisy paths (timestamps, ids), treat arrays as unordered sets, match array objects by a key such as id, and export RFC 6902 JSON Patch or RFC 7396 JSON Merge Patch.
Concise answers for common searches — definitions, steps, and comparisons.
Structurally compares two JSON documents and highlights added, removed, and changed paths. Export RFC 6902 JSON Patch or merge patch—all in your browser.
Yes—diff runs locally in your browser. Payloads are not uploaded to EverydayTools servers.
This is the original or expected document—any valid JSON object, array, or value. Use Format left if the payload is minified.
This is the modified or actual document. Optionally enable Sort keys, Ignore array order, or Ignore paths for timestamps.
Diff updates as you type when Auto is on. For large files, Auto turns off—click Compare or press Ctrl+Enter. Results show tree or side-by-side views with added/removed/modified counts.
Copy the summary, RFC 6902 JSON Patch, merge patch, or Markdown. Download patch or Markdown files for PRs and API PATCH bodies.
Common real-world scenarios where this tool saves time.
Back-end developers
Compare JSON from two endpoints, API versions, or before/after a deploy. See which fields changed, were added, or were removed.
DevOps and infrastructure engineers
Compare package.json, tsconfig, CloudFormation, or Terraform JSON outputs between branches and environments.
QA and test engineers
When an API test fails, paste expected and actual JSON to see the exact discrepancy faster than reading raw assertion output.
Step-by-step chains that connect related tools for common tasks.
Compare staging vs production (or before/after) response bodies.
Find which settings differ between production and staging JSON configs.
Input
Left: { "status": "ok", "count": 5, "data": [1,2,3] } · Right: { "status": "ok", "count": 6, "data": [1,2,3,4] }Output
Changed: /count 5→6 · Added: /data/3 → 4Confirms the API response changed only in count and one new data element—no other fields were touched.
Input
Left: production.json · Right: staging.json (ignore /updatedAt)Output
Added: /debug true · Changed: /log_level · Changed: /db_hostDiffing environment configs reveals drift. Ignoring /updatedAt removes timestamp noise so you focus on real settings.
Why developers use a JSON-aware compare instead of git diff on raw files.
| Aspect | Structural JSON diff | Plain text diff |
|---|---|---|
| Whitespace / indentation | Ignored after parse | Counts as changes |
| Object key order | Irrelevant (unordered) | Often flagged as churn |
| Output | Paths + patch ops | Line hunks |
| Best for | API payloads, configs | Source code, prose |
Use Text Diff (/text-diff) when you need line-oriented comparison of non-JSON text.
Choosing an export format for updates.
| Aspect | RFC 6902 JSON Patch | RFC 7396 Merge Patch |
|---|---|---|
| Form | Ops array (add/remove/replace…) | Partial JSON document |
| Deletes | remove op | null value |
| Array edits | Path-precise | Limited / replace-heavy |
| Common use | HTTP PATCH, tooling | Simple partial updates |
No for objects—JSON object keys are unordered, so {"a":1,"b":2} and {"b":2,"a":1} are treated as identical. Enable Sort keys if you want a stable key order before comparing. Arrays are ordered by default (index-based); use Ignore array order or Match-by-key when order is not meaningful.
RFC 6902 defines a JSON Patch: an array of operations (add, remove, replace, move, copy, test) that transform one document into another. Example: [{"op":"replace","path":"/count","value":6}]. Use Copy patch to export ops for HTTP PATCH or libraries like fast-json-patch.
Yes. The diff recurses into nested objects and arrays. Arrays compare by index by default. Enable Ignore array order to treat arrays as sets, or Match array items by key (e.g. id) when objects have stable identifiers.
JSON Patch (RFC 6902) is an explicit ops list. JSON Merge Patch (RFC 7396) is a partial document: changed fields are set, missing keys mean no change, and null deletes a key. This tool can export both.
Yes. Comparison runs in your browser. Inputs are not uploaded to EverydayTools servers. Share links store settings only, not your JSON payloads.
It structurally compares two JSON documents, highlights added/removed/changed paths, and exports JSON Patch, merge patch, or Markdown—ideal for API regression checks and config reviews.
JSON Diff keeps inputs on your device. Comparison runs in your browser (Web Worker). Share links encode settings only—not payloads.
Array match-by-key and unordered modes are best-effort for review—not a substitute for domain-specific reconciliation. Validate patch consumers against your library (e.g. fast-json-patch).
Advertisement
Reviewed by EverydayTools Editorial Team on 2026-07-10.
Same workflow or intent — pick the next step without leaving the site.
Click any value in a JSON tree to copy its JSONPath expression—navigate deep API payloads, nested objects, and config files without manual guesswork.
Paste JSON and see syntax errors with line and column numbers. Auto-validate in your browser—fix trailing commas and comments locally. No upload, no signup.
Free .env file parser — paste any .env file and extract all environment variables as structured JSON or YAML. Useful for config migration and debugging. No signup needed. Runs locally in your browser when supported—no upload required for normal use.
Generate cryptographically secure random API keys in hex, base64, or alphanumeric format — instantly in your browser with no upload, no signup.
Free API mock generator — create realistic mock API responses with custom status codes, response headers, and JSON body. Perfect for frontend development and testing. No signup. Runs locally in your browser when supported—no upload required for normal use.
Free number base converter — convert between binary (base 2), octal (base 8), decimal (base 10), hexadecimal (base 16), and text in real time. No signup required. Runs locally in your browser when supported—no upload required for normal use.
Frequently opened tools from the same category.
Free JSON formatter — paste minified or messy JSON and instantly get beautified, indented output with syntax highlighting and error detection. Browser-based, no server upload. Runs locally in your browser when supported—no upload required for normal use.
Free UUID generator: v4, v7 & v1 GUIDs in your browser—bulk up to 1,000, validate, export JSON/CSV. crypto.randomUUID; never uploaded.
Free random number generator — Web Crypto integers or decimals, no-repeat draws, dice, coin flip, and list picker. Copy or CSV. Runs locally in your browser.
Free .env file parser — paste any .env file and extract all environment variables as structured JSON or YAML. Useful for config migration and debugging. No signup needed. Runs locally in your browser when supported—no upload required for normal use.
Guides and walkthroughs that reference this tool.
Step-by-step guide to calculating your calorie deficit for weight loss using the Mifflin-St Jeor equation and TDEE. Includes BMR formulas, activity multipliers, macro targets, and a free browser-based calorie calculator.
What regex is, how pattern syntax maps to real strings, and where to use it for validation, search-replace, and log parsing—with a quick reference.
Browse full tool collections by topic.