How to produce JSON with sorted keys in Go?

Issue

In python you can produce JSON with keys in sorted order by doing

import json
print json.dumps({'4': 5, '6': 7}, sort_keys=True, indent=4, separators=(',', ': '))

I have not found a similar option in Go. Any ideas how I can achieve similar behavior in go?

Solution

The json package always orders keys when marshalling. Specifically:

  • Maps have their keys sorted lexicographically

  • Structs keys are marshalled in the order defined in the struct

The implementation lives here ATM:

Answered By – Gustavo Niemeyer

Answer Checked By – Pedro (GoLangFix Volunteer)

Leave a Reply

Your email address will not be published.