При разработке приложений у вас, возможно, появлялось желание вынести некоторые изменяемые значения в отдельный файл настроек, а не задавать их в коде программы. Особенно часто при разработке веб-приложений конфигурационные файлы разделяют на те, что хранят настройки доступа к базе данных, имена серверов, пароли и т.п. — как раз то, что нельзя жёстко задавать в коде программы.
Мы рассмотрим пример открытия файла настроек в формате JSON из приложения на Go с последующей загрузкой этих данных в структуру данных, которую можно будет использовать в дальнейшем.
На самом деле Golang это всё уже умеет «из коробки». Рассмотрим пример структуры данных, которая представляет данные конфигурации:
type Config struct {
Database struct {
Host string `json:"host"`
Password string `json:"password"`
} `json:"database"`
Host string `json:"host"`
Port string `json:"port"`
}
Все поля это структуры, включая вложенные, имеют аннотации JSON. А значит, JSON-эквивалент этой структуры будет таким:
{
"database": {
"host": "localhost",
"password": "12345"
},
"host": "localhost",
"port": "8080"
}
Договоримся, что наши настройки хранятся в файле config.json и мы хотим загрузить их. Вот код для этого:
func LoadConfiguration(file string) Config {
var config Config
configFile, err := os.Open(file)
if err != nil {
fmt.Println(err.Error())
}
jsonParser := json.NewDecoder(configFile)
jsonParser.Decode(&config)
return config
}
Теперь эти настройки можно использовать в нашей программе.
Этот пример очень простой, однако очень полезный при разработке приложений на Go.
Источник: «Load A JSON Configuration From File In A Golang Application»
Разработчик: java, kotlin, c#, javascript, dart, 1C, python, php.
Пишите: @ighar. Buy me a coffee, please :).