Skip to main content
ShrinkJSON
JSON Canonicalize
Home
Tools
Converters
Blog
Toggle theme
Open Navigation
JSON Canonicalize
Deterministic JSON output for hashing, signing, and comparisons
JSON Input
Generate Sample
{ "roadmap": { "quarter": "2025-Q2", "milestones": [ { "id": "m-1", "name": "Partner API beta", "owner": "Mateo", "status": "on-track", "eta": "2026-05-28" }, { "id": "m-2", "name": "Edge cache warmup", "owner": "John", "status": "on-track", "eta": "2026-05-26" } ] }, "squads": [ { "name": "Delta", "members": [ "Liang", "Mateo", "Elena" ], "velocity": 29 }, { "name": "Harbor", "members": [ "Ravi", "John" ], "velocity": 37 }, { "name": "Quill", "members": [ "Mateo", "John" ], "velocity": 35 } ], "experiments": [ { "id": "exp-1", "hypothesis": "Contract tests prevent breaking changes", "metric": "trialToPaid", "result": "neutral" }, { "id": "exp-2", "hypothesis": "Guided onboarding lowers drop-off", "metric": "activationRate", "result": "positive" } ] }
Output
Canonical (RFC 8785)
Pretty (sorted keys)
Copy
{ "roadmap": { "quarter": "2025-Q2", "milestones": [ { "id": "m-1", "name": "Partner API beta", "owner": "Mateo", "status": "on-track", "eta": "2026-05-28" }, { "id": "m-2", "name": "Edge cache warmup", "owner": "John", "status": "on-track", "eta": "2026-05-26" } ] }, "squads": [ { "name": "Delta", "members": [ "Liang", "Mateo", "Elena" ], "velocity": 29 }, { "name": "Harbor", "members": [ "Ravi", "John" ], "velocity": 37 }, { "name": "Quill", "members": [ "Mateo", "John" ], "velocity": 35 } ], "experiments": [ { "id": "exp-1", "hypothesis": "Contract tests prevent breaking changes", "metric": "trialToPaid", "result": "neutral" }, { "id": "exp-2", "hypothesis": "Guided onboarding lowers drop-off", "metric": "activationRate", "result": "positive" } ] }