在golang中读取yaml配置文件,我是否总是需要结构?

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

我想从Golang的yaml中读取配置常量。

示例:我有config.yml

server:
  host: "localhost"
  port: 8080

和配置结构

type Config struct {
    Server struct {
        Port string `yaml:"port"`
        Host string `yaml:"host"`
    } `yaml:"server"`
}

然后我可以这样阅读:

f, err := os.Open("config.yml")
if err != nil {
    processError(err)
}

var cfg Config
decoder := yaml.NewDecoder(f)
err = decoder.Decode(&cfg)
if err != nil {
    processError(err)
}

我正在使用gopkg.in/yaml.v2

我想解析它,然后读取常量,我是否需要在配置中包含一个结构结构?

提前感谢

go
1个回答
1
投票

您可以将Yaml文件解组到界面{}:

var data interface{}
yaml.Unmarshal(input,&data)

要注意的一件事是https://gopkg.in/yaml.v2库取消了对map [interface {}] interface {}而不是map [string] interface {}的编组。

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