我有以下yaml文件
arbitratyKey:
things:
- value 1
- value 2
canBeAnything:
things:
- value 1
- value 2
asdasdasd:
things:
- value 1
- value 2
当我不知道根密钥是什么时,如何选择密钥?
我正在使用以下库 https://godoc.org/gopkg.in/yaml.v2#Unmarshal
以下代码显然不起作用,但是如何在不指定类型的情况下访问canBeAnything
键?
type T struct{}
t := T{}
yaml.Unmarshal([]byte(data), &t)
fmt.Println(t.canBeAnything)
答案 0 :(得分:2)
在通常情况下,如果您要解析某个文件,则在解析之前会知道它的外观。因此,如果您知道文件的外观,请考虑Unmarshal
到定义文件形状的结构实例。
如果您不了解架构,需要动态工作,请Unmarshal
进入map[string]interface{}
t := make(map[string]interface{})
yaml.Unmarshal([]byte(data), &t)
fmt.Println(t["canBeAnything"])