程序开发 · 2024年1月12日

在不知道字段名称的情况下解析 YAML

当前位置: > > > > 在不知道字段名称的情况下解析 YAML

来源:stackoverflow
2024-04-29 11:03:35
0浏览
收藏

“纵有疾风来,人生不言弃”,这句话送给正在学习Golang的朋友们,也希望在阅读本文《在不知道字段名称的情况下解析 YAML》后,能够真的帮助到大家。我也会在后续的文章中,陆续更新Golang相关的技术文章,有好的建议欢迎大家在评论留言,非常感谢!

问题内容

我正在尝试解析具有以下结构的 yaml 文件:

contacts:
  teamone:
    email:
      to: '[email protected]'

我可以这样获取电子邮件地址:

https://go.dev/play/p/gt_smmgdmch

我的问题是,如何从如下所示的 yaml 文件中获取所有电子邮件地址(或特定地址):

contacts:
  teamone:
    email:
      to: '[email protected]'
  teamtwo:
    email:
      to: '[email protected]'

此外,人们可以随时向此文件添加新的团队/电子邮件地址。

这样做的目的是从 yaml 文件中查找联系方式详细信息。因此,某人可以运行该程序,为其提供一个团队(例如“teamnine”),并且输出将是与该条目关联的电子邮件。

如有任何建议,我们将不胜感激。

正确答案

team 定义为单独的结构体,并使用映射:

type Team struct {
   Email struct {
      To string `yaml:"to"`
   } `yaml:"email"`
}

type Contacts struct {
    Contacts  map[string]Team `yaml:"contacts"`
}

以上就是《在不知道字段名称的情况下解析 YAML》的详细内容,更多关于的资料请关注公众号!