Go:解析变体 YAML

标签 go yaml

我想解码映射,它可以包含不同的值,我如何在 Go 中使用 yaml.v2 来完成它?

目前,我有以下节点描述:

package executors

type OptionMap map[string][]string

type Step struct {
    Exec string
    Pwd  string
    Opts OptionMap
}

示例 YAML 如下:

steps:
   - exec: maven
     pwd: /code
     opts:
       goals:
         - clean
         - install
       mvn_home: /maven

显然,如果只有 goals 而不是 mvn_home 出现,节点将被解码。有没有办法为这样的节点编写单个描述?

如果不是,是否有任何方法可以将 YAML 的某些部分(在某个键下)读取为纯字符串,或者更好的是,像 map[string]OBJECT 这样的映射并解码 OBJECT 分开?

最佳答案

尝试使用 map[string]interface{} 解码。使用 interface{},您可以稍后在需要时解码它。

关于Go:解析变体 YAML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33982311/

相关文章:

docker - Kubernetes和Dockerfile

python - 如何使用 PyYAML 读取 python 元组?

json - 如何从 Auto Scaling 组获取私有(private) IP 地址

amazon-web-services - 将 EC2 实例放置在特定子网中时出现 CloudFormation 模板错误

go - 如何在 Go 中将函数指针传递给 C 代码

function - 为什么 Golang 允许两个函数在具有不同的接收者类型时具有相同的名称,但在它们具有不同的参数类型时则不允许?

go - Go 练习之旅 #17 : double less operator

序列的 YAML anchor ?

amazon-web-services - 让 Beego 在 AWS 上工作

variables - 访问具有在包内其他函数中的一个函数中定义的键值的变量