使用 Go 保留 YAML 映射的顺序

我试图弄清楚如何在 Go 中读取 YAML 文件,同时保留 YAML 文档中的键顺序。我见过的大多数示例都涉及对键进行排序,但这在我的情况下不起作用。此外,YAML 是任意结构的(键是用户定义的,值是字符串和字符串列表的混合,也是用户定义的),这使事情变得复杂。

go-yaml.v2 似乎做我想做的事(http://blog.labix.org/2014/09/22/annoucing-yaml-v2-for-go),但我找不到任何关于如何做的例子使用订购功能。这一点,加上对 Go 的全新认识,让我很困惑。

如果需要,我很乐意提供我尝试解析的 YAML 示例。


慕桂英546537
浏览 153回答 1
1回答

慕尼黑8549860

干得好:var data = `  a: Easy!  b:  c: 2  d: [3, 4]`m := yaml.MapSlice{}err := yaml.Unmarshal([]byte(data), &m)if err != nil {    log.Fatalf("error: %v", err)}fmt.Printf("--- m:\n%v\n\n", m)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go