如何定义go结构来存储这个yaml结构?

时间:2017-10-13 01:36:24

标签: go yaml

我正在试图弄清楚如何组织我的Golang结构来存储我的yaml文件。我想我对嵌套地图有点问题。我试图让这个yaml文件存储在像{statCategory:{CatOne:{featD:{description:amazing, unit:nil}}}这样的东西中。

我目前正在使用yaml "gopkg.in/yaml.v2"来解析yaml。

下面是我要解析的yaml文件。

stat:
  statCategory:
    CatOne:
      featD:
        description: amazing
        unit: nil
      featH:
        description: not amazing
        unit: nil
    CatTwo:
      featA:
        description: hello
        unit: ms
      featB:
        description: something
        unit: ms
      featC:
        description: another description
        unit: ms

我试过使用下面的结构,但它似乎只是有点工作。

type yamlStatDAO struct {
    Stat statCategory `yaml:"stat"`
}
type statCategory struct {
    StatCat map[string]map[string]statInfo `yaml:"statCategory"`
}

type statInfo struct {
    description string `yaml:"description"`
    unit        string `yaml:"unit"`
}

但我最终只得{statCategory:{CatOne:{featD:{}}}。如果我无法解决这个问题,我可能会重构我的yaml文件。

编辑:似乎解决方案只是将描述和单位大写。

type statInfo struct {
    Description string `yaml:"description"`
    Unit        string `yaml:"unit"`
}

感谢Alexander Maru的评论。

0 个答案:

没有答案