我想解码映射,它可以包含不同的值,我如何在 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/