Go 中使用排序键进行 JSON 编组
在 Python 中,使用按排序顺序生成键的 JSON 非常简单,只需将 sort_keys 参数设置为真的。但是围棋呢?这个问题探讨了在 Golang 中实现类似行为的选项。
Go 的键排序方法
与 Python 不同,Go 的 JSON 包本质上在编组期间对键进行排序。具体排序规则如下:
这种自动键排序意味着开发人员不需要像 Python 中那样显式指定 sort_keys 参数。键的顺序由 Go 的内部排序算法决定。
底层
键排序的实现可以在encoding/json/encode.go 中找到,特别是从第 359 行开始。在这里,编码器在序列化 JSON 之前迭代映射或结构的键并对它们进行排序。
示例
考虑以下 Go 代码:
package main import "encoding/json" type MyStruct struct { Field1 string Field2 int } func main() { data := map[string]int{"apple": 1, "banana": 3, "cherry": 2} jsonData, _ := json.Marshal(data) fmt.Println(string(jsonData)) }
这段代码的输出将be:
{ "apple": 1, "banana": 3, "cherry": 2 }
如你所见,键会自动按字典顺序排序,无需任何额外配置。
以上是在 Go 中编组时如何实现排序的 JSON 键?的详细内容。更多信息请关注PHP中文网其他相关文章!