在python中,您可以通过执行
按排序顺序生成带有键的JSONimport json
print json.dumps({'4': 5, '6': 7}, sort_keys=True, indent=4, separators=(',', ': '))
我在Go中找不到类似的选项。任何想法我怎么能在go中实现类似的行为?
答案 0 :(得分:42)
json包总是在编组时命令键。具体做法是:
地图的键按字典顺序排序
结构键按结构中定义的顺序编组
实施在这里ATM:
答案 1 :(得分:2)
古斯塔沃·尼迈耶(Gustavo Niemeyer)给出了很好的答案,只是我需要的一个小巧的片段,用于验证和重新排序/规范化[] byte表示的json
func JsonRemarshal(bytes []byte) ([]byte, error) {
var ifce interface{}
err := json.Unmarshal(bytes, &ifce)
if err != nil {
return []byte{}, err
}
output, err := json.Marshal(ifce)
if err != nil {
return []byte{}, err
}
return output, nil
}