如何使用 go-yaml 库解析和保存带有注释的 YAML 配置文件?

如何使用 go-yaml 库解析和保存带有注释的 yaml 配置文件?

寻找支持配置文件注释解析的 go 库

go-yaml 库提供了访问 yaml注释的方法,可保留注释信息。

使用 go-yaml 库解析和保存带有注释的 yaml 配置文件:

package main

import (
    "log"
    "strings"

    yaml "gopkg.in/yaml.v3"
)

func main() {
    var node yaml.Node

    data := []byte(strings.TrimSpace(`
block1:
    # the comment
    map:
        key1: a
        key2: b
    
block2:
    hi: there

`))

    if err := yaml.Unmarshal(data, &node); err != nil {
        log.Fatalf("Unmarshalling failed %s", err)
    }

    results, err := yaml.Marshal(node.Content[0])
    if err != nil {
        log.Fatalf("Marshalling failed %s", err)
    }
}

此代码将解析带有注释的 yaml 配置文件,然后使用 go-yaml 库的 marshal 方法将配置信息序列化为具有相同注释的新 yaml 内容。

以上就是如何使用 go-yaml 库解析和保存带有注释的 YAML 配置文件?的详细内容,更多请关注硕下网其它相关文章!