我有一个带有嵌套值的简单 yaml 文件,例如
name: pamela
favourites:
book: the-lion-the-witch-and-the-wardrobe
movie: barbie
我可以使用
gopkg.in/yaml.v2
库成功地将其解组到以下结构中:
type Person struct {
Name string `yaml:"name"`
Favourites *Favourites `yaml:"favourites"`
}
type Favourites struct {
Book string `yaml:"book"`
Movie string `yaml:"movie"`
}
有没有办法扁平化 yaml,我不想创建结构
favourites
,而是将最喜欢的书籍和电影的值写入顶级属性。
例如,下面的代码不起作用,但是有类似的东西可以让我读取这样的嵌套 yaml 值吗?
type Person struct {
Name string `yaml:"name"`
FavouriteBook `yaml:"favourites.book"`
FavouriteMovie `yaml:"favourites.movie"`
}
警告:我已经看到了实现自定义解组器的选项。我想避免这种情况,所以我的问题更多 - 有谁知道已经支持此功能的 yaml 库吗?
使用原生 Golang Unmarshal,我不相信如果没有自定义 Unmarshaller 就无法做到这一点。也就是说,gson 似乎提供了该功能。