JSON Compare
Client-sideFeaturedCompare two JSON documents structurally. Find added, removed, changed, and type-changed paths — privately in your browser.
JSON Compare finds added, removed, changed, and type-changed paths between two JSON documents in your browser.
Examples
Key takeaways
- Path-level added / removed / changed / type-changed
- Ignores object key order
- Both sides processed locally
- Different from unified text diff
What is structural JSON compare?
Structural compare walks both documents by path and reports semantic differences, ignoring object key order.
Use it when you care about values and key presence. For a line-oriented unified patch after pretty-printing, use JSON Diff instead.
Features
Path-level report
Every difference is anchored to a path such as $.user.role.
Change kinds
Distinguish added, removed, changed, and type-changed entries.
Side-by-side inputs
Paste left and right JSON, or drop two files for comparison.
Exportable summary
Copy or download the compare report for PRs and incident notes.
How it works
Paste left and right JSON
Provide two documents to compare side by side.
Run compare
The tool walks both structures and lists path-level differences.
Export the report
Copy or download the compare report for reviews or tickets.
Example walkthroughs
Changed field
Only $.role is reported as changed; identical fields are ignored.
{"id":1,"name":"Ada","role":"admin"}Added key
$.b appears as an added path on the right document.
{"a":1}
Compare vs Diff
| Need | Use |
|---|---|
| Path-level semantic changes | JSON Compare |
| Line-oriented unified patch | JSON Diff |
| Single-document formatting | JSON Formatter |
Use cases
API regression checks
Compare before/after responses when validating a backend change.
Config drift
Spot keys that appeared or disappeared between environments.
Migration verification
Confirm transformed documents keep expected fields and types.
Code snippets
Structural compare outline
jsJSON Compare reports path-level changes, not a line patch.
// Conceptual: walk both trees by path // added | removed | changed | type-changed
Common errors
Everything looks changed
Cause: One side is minified text while the other is a different structure.
Fix: Ensure both sides are valid JSON documents you intend to compare.
Key order noise
Cause: You expected key order to matter.
Fix: Object key order is ignored — only values and key presence count.
About JSON Compare
JSON Compare performs a structural walk of two documents and lists path-level differences — added keys, removed keys, changed values, and type changes. Reach for it when two API responses, feature-flag dumps, or config snapshots should mean the same thing even if key order differs.
Unlike a unified text diff, object key order is ignored so formatting churn does not drown real data changes. Type-changed paths (for example string vs number) are called out separately because they often break clients that look “fine” in a line-oriented patch.
Both sides are parsed and compared in your browser. Sensitive staging payloads never leave the device, which matters when diffs include PII, tokens, or internal IDs. Pair with JSON Validator if either side fails to parse before comparing.
Best practice: use JSON Diff when you want a classic +/- review after pretty-printing. Use Compare when semantics and paths matter more than line layout. Normalize both sides (same schema expectations) before treating an empty report as “identical in production.”
Frequently asked questions
How is this different from JSON Diff?
Compare focuses on structural path changes. Diff shows a line-oriented unified diff of pretty-printed JSON.
Are object key orders treated as differences?
No. Object key order is ignored; only values and presence of keys matter.
Does my data leave the device?
No. Comparison is fully client-side.
Related tools
JSON Formatter
Format, beautify, and minify JSON in your browser. Free, private, and instant — no upload to a server.
JSON Validator
Validate JSON instantly in your browser. See type, size, and node counts — or exact parse errors with line and column.
JSON Viewer
Explore JSON as an interactive tree with paths, types, and expandable nodes — all processed locally in your browser.
JSON Diff
Generate a unified diff of two JSON documents after pretty-printing. Ideal for reading line-level changes quickly.
JSON Escape
Escape text into a JSON string literal, or unescape a JSON string back to raw text — instantly and offline.
Popular tools
Base64 Encode / Decode
Encode UTF-8 text to Base64 or decode Base64 back to text — instantly in your browser.
URL Encode / Decode
Percent-encode text for URLs or decode encoded query strings — private and instant.
JWT Decode
Decode JWT header and payload in your browser — inspect claims without uploading tokens.
UUID Generator
Generate UUID v4 identifiers in bulk — uppercase and hyphenless options, fully client-side.
Newest tools
Gradient Generator
Build linear and radial CSS gradients with Tailwind output — private and client-side.
Case Converter
Convert text between UPPERCASE, lowercase, Title Case, camelCase, snake_case, and more.
Word Counter
Count words, characters, sentences, and paragraphs with reading time — live and private.
Text Diff
Compare two texts line by line — see added and removed lines with a unified-style diff.