登录
首页 >  Golang >  Go问答

如果我不知道使用 go 的(结构)中的预期模式,如何验证/读取 yaml?

来源:stackoverflow

时间:2024-03-17 11:12:28 284浏览 收藏

如果您不熟悉 Go 结构中的预期模式,可以使用库“github.com/smallfish/simpleyaml”读取 YAML 文件。它提供了一种简单的方法来读取 YAML 内容,而无需事先定义结构。通过调用 NewYaml() 函数,您可以将 YAML 内容解析为一个对象,该对象可以遍历并访问其中的数据。 另一方面,如果您愿意定义结构,可以使用 gopkg.in/yaml.v2 库来解析 YAML。它允许您将 YAML 内容解组到接口中,然后可以将其转换为所需的结构。通过使用类型断言,您可以遍历 YAML 树并根据需要访问值。

问题内容

我可以使用这个库 "github.com/smallfish/simpleyaml" 来阅读此内容

yml, err := ioutil.ReadFile("pvz-qa.yml")

    b := err == nil
    if b {
        fmt.Print("All good")

    }

    fmt.Print(yml)


    parsedYml,error := simpleyaml.NewYaml(yml)

我可以使用 gopkg.in/yaml.v2 做同样的事情吗?


解决方案


您可以解组到接口:

var yml interface{}
data,_:=ioutil.readall(file)
err:=yaml.unmarshal(data, &yml)

成功解组后,yml 就是 map[interface{}]interface{},您可以使用类型断言遍历树。例如:

value:=yml["key"]

将为您提供 key 的值,您可以检查它是否是字符串、[]interface{}map[interface{}]interface{} 并递归下降。

本篇关于《如果我不知道使用 go 的(结构)中的预期模式,如何验证/读取 yaml?》的介绍就到此结束啦,但是学无止境,想要了解学习更多关于Golang的相关知识,请关注golang学习网公众号!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>