Загрузка настроек приложения из JSON в Golang

Разработка /
Разработка: Загрузка настроек приложения из JSON в Golang
При разработке приложений у вас, возможно, появлялось желание вынести некоторые изменяемые значения в отдельный файл настроек, а не задавать их в коде программы. Особенно часто при разработке веб-приложений конфигурационные файлы разделяют на те, что хранят настройки доступа к базе данных, имена серверов, пароли и т.п. — как раз то, что нельзя жёстко задавать в коде программы.

Мы рассмотрим пример открытия файла настроек в формате 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»
0 комментариев
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.