在python中,您可以通过执行以排序顺序生成带有键的JSON
import json
print json.dumps({'4': 5, '6': 7}, sort_keys=True, indent=4, separators=(',', ': '))
我在 Go 中没有找到类似的选项。有什么想法可以在 go 中实现类似的行为吗?
json 包在编组时总是对键进行排序。具体来说:
地图的键按字典顺序排序
结构键按结构中定义的顺序编组
实现在这里 ATM:
Gustavo Niemeyer 给出了很好的答案,只是我在需要时用来验证和重新排序/规范化 json 的 []byte 表示的一个方便的小片段
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
}