猿问

yaml 文件中的初始键是任意的,我如何在 Go 中读取它们?

我有以下 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)


莫回无
浏览 104回答 1
1回答

缥缈止盈

在正常情况下,如果您正在解析某个文件,您会在解析它之前知道它的外观。因此,如果您知道文件的外观,请考虑Unmarshal使用定义文件形状的结构实例。如果您不知道模式并且需要动态工作,Unmarshal请进入map[string]interface{}t := make(map[string]interface{})yaml.Unmarshal([]byte(data), &t)fmt.Println(t["canBeAnything"])
随时随地看视频慕课网APP

相关分类

Go
我要回答