【问题标题】:How do I validate/ read a yaml if I don't know the expected schema in (a struct) using go?如果我不知道使用 go 的(结构)中的预期模式,如何验证/读取 yaml?
【发布时间】:2020-01-14 23:27:31
【问题描述】:

我可以使用这个库"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 做同样的事情吗?

【问题讨论】:

  • “Better”非常广泛......

标签: go yaml


【解决方案1】:

你可以解组到一个接口:

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

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

value:=yml["key"]

会给你key的值,你可以检查它是一个字符串,还是[]interface{},或者map[interface{}]interface{},然后递归下降。

【讨论】:

    猜你喜欢
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 2020-12-08
    • 2019-10-17
    • 2021-06-14
    • 2020-01-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多