How to use the JSON Diff
- Paste the original JSON on the left and the changed JSON on the right.
- Read the summary of added, removed and changed values.
- Use the path column to locate each change; tick Ignore array order for lists whose order does not matter.
Structural diff vs text diff
A text diff compares lines, so reformatting, reordered keys or a changed indentation make every line look different. A JSON diff parses both documents and compares the data: {"a":1,"b":2} and {"b":2,"a":1} are identical, and a changed nested value is reported once with its exact path.
How changes are reported
| Type | Meaning | Example |
|---|---|---|
| added | Key or array element only in the changed document | $.license |
| removed | Key or element only in the original | $.private |
| changed | Different value or different type at the same path | $.version: "1.4.0" → "1.5.0" |
Arrays
By default arrays are compared position by position, which is right for ordered data. For sets — tags, permissions, IDs — tick Ignore array order: elements are matched by content, so only genuinely added or removed items are reported.
Typical uses
- Checking what an API change returns differently before and after a deploy.
- Comparing
package.json, Terraform state or feature-flag configs between environments. - Reviewing updates to translation files and test fixtures.
For plain-text comparison use the diff checker; to inspect one document, the JSON viewer.
Tools that pair well with the JSON Diff
- JSON Escape & Unescape — Make any text safe to paste into a JSON string — quotes, backslashes, newlines and Unicode — or turn an escaped string back into readable text or JSON.
- JSON to CSV — Turn a JSON array into a spreadsheet-ready CSV.
- JSON to YAML — Paste JSON and get clean YAML for Kubernetes manifests, Docker Compose, GitHub Actions or any config file.
- YAML to JSON — Paste YAML — a Compose file, Kubernetes manifest or CI config — and get formatted JSON.