JSON Diff & Compare
Paste two JSON documents side by side. We compute a semantic diff — not a text diff — so reordered keys count as unchanged, and nested additions/removals are reported with their full path.
- name"Ada" → "Ada Lovelace"
- age
- skills[0]
- skills[1]
- skills[2]+ "programming"
- address.city
- address.zip+ "SW1"
How to use this tool
Paste your original JSON on the left and the changed JSON on the right.
A summary shows how many values were added, removed, or modified. Each change lists its JSON path so you can find it instantly.
Modified values show the before/after inline (strikethrough old, green new). Added values are green; removed values are red.
This is a semantic comparison: object key order does not matter, and array indices are compared positionally. Perfect for diffing API responses, config files, or test snapshots.
Everything runs in your browser, so you can safely diff documents containing internal data.
Frequently asked questions
Is this a text diff or a semantic diff?
Semantic. We parse both documents and compare the resulting trees. Reordered object keys do not show as changes; only actual value differences do. This is what you almost always want for JSON.
How are arrays compared?
By index. Array element at position N on the left is compared to position N on the right. If your arrays are unordered lists of objects, consider keying them by an id field before diffing.
What does "modified" mean vs "added/removed"?
Modified = the path exists in both documents but with different values. Added = exists only on the right. Removed = exists only on the left.
Is there a size limit?
No server limit — comparison is local. Very large documents may take a moment to compute but work fine.
Is my data uploaded?
No. The comparison happens entirely in your browser.