Читая файлы конфигурации yaml в golang, мне всегда нужны структуры? - PullRequest
0 голосов
/ 02 ноября 2019

Я хотел бы прочитать константы конфигурации из yaml в Голанге.

Пример: у меня есть config.yml

server:
  host: "localhost"
  port: 8080

И структура config

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

Я хочу проанализировать его и затем прочитать константы, нужно ли иметь структуру со структурой конфигурации?

Спасибо заавансовый

1 Ответ

1 голос
/ 02 ноября 2019

Вы можете разархивировать файл yaml в интерфейс {}:

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

Следует отметить, что библиотека https://gopkg.in/yaml.v2 выполняет демаршализацию для отображения интерфейса [interface {}] {},вместо интерфейса карты [строка] {}.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...