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-Q1", "milestones": [ { "id": "m-1", "name": "Edge cache warmup", "owner": "Mateo", "status": "at-risk", "eta": "2026-07-15" }, { "id": "m-2", "name": "Accessibility audit", "owner": "Liang", "status": "blocked", "eta": "2026-07-31" } ] }, "squads": [ { "name": "Delta", "members": [ "Liang", "John" ], "velocity": 39 }, { "name": "Quill", "members": [ "Liang", "John" ], "velocity": 41 }, { "name": "Harbor", "members": [ "John", "Mateo", "Ravi", "Elena" ], "velocity": 20 } ], "experiments": [ { "id": "exp-1", "hypothesis": "Guided onboarding lowers drop-off", "metric": "supportTickets", "result": "pending" } ] }
Output
Canonical (RFC 8785)
Pretty (sorted keys)
Copy
{ "roadmap": { "quarter": "2025-Q1", "milestones": [ { "id": "m-1", "name": "Edge cache warmup", "owner": "Mateo", "status": "at-risk", "eta": "2026-07-15" }, { "id": "m-2", "name": "Accessibility audit", "owner": "Liang", "status": "blocked", "eta": "2026-07-31" } ] }, "squads": [ { "name": "Delta", "members": [ "Liang", "John" ], "velocity": 39 }, { "name": "Quill", "members": [ "Liang", "John" ], "velocity": 41 }, { "name": "Harbor", "members": [ "John", "Mateo", "Ravi", "Elena" ], "velocity": 20 } ], "experiments": [ { "id": "exp-1", "hypothesis": "Guided onboarding lowers drop-off", "metric": "supportTickets", "result": "pending" } ] }