Golang Yaml Unmarshal 支持通过 struct 标签访问嵌套 yaml 吗?

问题描述 投票:0回答:1

我有一个带有嵌套值的简单 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 库吗?

go yaml
1个回答
0
投票

使用原生 Golang Unmarshal,我不相信如果没有自定义 Unmarshaller 就无法做到这一点。也就是说,gson 似乎提供了该功能。

© www.soinside.com 2019 - 2024. All rights reserved.