beego的config模块如何读取多层级对象的yaml文件?

我尝试用beego的配置模块,加载了github.com/astaxie/beego/tree/master/config/yaml 包来读取yaml格式的配置文件,可以读取单层级的文件,如:


KEY1: VALUE1
KEY2: VALUE2

这样的格式文件,的确可以获取到KEY1和KEY2的值。但是对于层级比较复杂的配置文件,如


name: Tom Smith
age: 37
spouse:
name: Jane Smith
age: 25

这样的配置文件,怎么获取spouse下面的name和age的值呢?

已邀请:

javasgl - https://javasgl.github.io/

赞同来自:

beego 里面的yaml 我没有用过,源码我也没看过,我使用的是 gopkg.in/yaml.v2 。
我就说一下这个包是怎么用的:
像这种嵌套层级比较复杂的文件,需要先定义结构,然后使用 yaml 来解析:


type Config struct{
Name string `yaml:"name"`
Age int `yaml:"age"`
Spouse struct{
Name string `yaml:"name"`
Age int `yaml:"age"`
} `yaml:"spouse"`
}

var config Config

//config file path
configFile:="/path/to/config.yaml"
//read config file
configBytes, err := ioutil.ReadFile(configFile)
//check err
...
//unmarshal
err = yaml.Unmarshal(configBytes, &config)

//access config
fmt.Println(config.Spouse.Name)
fmt.Println(config.Spouse.Age)

要回复问题请先登录注册