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

标签 go 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 做同样的事情吗? ?

最佳答案

您可以解码到接口(interface):

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

成功解码后,ymlmap[interface{}]interface{} ,并且您可以使用类型断言遍历树。例如:
value:=yml["key"]

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

关于go - 如果我不知道使用 go 的(结构)中的预期模式,如何验证/读取 yaml?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59743220/

相关文章:

python - 我将如何用 Python 解析 'Front Matter'

import - 从父目录相对导入

sockets - 转到 Unix 域套接字 : bind address already in use

go - 如何使用golang和数组数据创建json数据

go - Gin如果 `request body`绑定(bind)到中间件,c.Request.Body变为0

java - 使用 jackson databind 解析 yaml 会导致 MismatchedInputException

javascript - 如何在 Angular 应用程序中从 YAML 文件(保存在我的 PC 中)读取数据?

bash - 在 Yaml 中解析 Bash 数组

go - gc Go 是如何处理堆分配的?

gradle - 我的Gitlab CI/CD管道无法通过FATAL进行高速缓存:文件不存在错误