golang讀取各種配置文件(ini、json、yaml)
日常項目中,讀取各種配置文件是避免不瞭的,這裡介紹一個能讀取多種配置文件的庫,viper
viper讀取ini文件
config := viper.New() config.AddConfigPath("./conf/") // 文件所在目錄 config.SetConfigName("b") // 文件名 config.SetConfigType("ini") // 文件類型 if err := config.ReadInConfig(); err != nil { if _, ok := err.(viper.ConfigFileNotFoundError); ok { fmt.Println("找不到配置文件..") } else { fmt.Println("配置文件出錯..") } } host := config.GetString("redis.host") // 讀取配置 fmt.Println("viper load ini: ", host)
b.ini文件如下
[mysql] username='root' password='123456' [redis] host='127.0.0.1' poet=3306 [mongodb] user='admin' password='admin'
viper讀取json文件
config := viper.New() config.AddConfigPath("./conf/") config.SetConfigName("c") config.SetConfigType("json") if err := config.ReadInConfig(); err != nil { if _, ok := err.(viper.ConfigFileNotFoundError); ok { fmt.Println("找不到配置文件..") } else { fmt.Println("配置文件出錯..") } } version := config.GetString("version") origin := config.GetString("host.origin") fmt.Println(version) fmt.Println(origin) // 讀取到map中 host := config.GetStringMapString("host") fmt.Println(host) fmt.Println(host["origin"]) fmt.Println(host["port"]) allSettings := config.AllSettings() fmt.Println(allSettings)
c.json文件如下
{ "version": "2.0", "secret": "footmark", "host": { "origin": "http://www.baidu.com", "port": 8080 } }
viper讀取yaml文件
config := viper.New() config.AddConfigPath("./conf/") config.SetConfigName("a") config.SetConfigType("yaml") if err := config.ReadInConfig(); err != nil { if _, ok := err.(viper.ConfigFileNotFoundError); ok { fmt.Println("找不到配置文件..") } else { fmt.Println("配置文件出錯..") } } host := config.GetString("database.host") fmt.Println("viper load yml: ", host) allSettings := config.AllSettings() fmt.Println(allSettings)
a.yaml文件如下
database: host: 127.0.0.1 user: root dbname: test pwd: 123456
viper常用方法
// viper 常用讀取配置的方法 Get(key string) : interface{} GetBool(key string) : bool GetFloat64(key string) : float64 GetInt(key string) : int GetIntSlice(key string) : []int GetString(key string) : string GetStringMap(key string) : map[string]interface{} GetStringMapString(key string) : map[string]string GetStringSlice(key string) : []string GetTime(key string) : time.Time GetDuration(key string) : time.Duration IsSet(key string) : bool AllSettings() : map[string]interface{}
到此這篇關於golang讀取各種配置文件(ini、json、yaml)的文章就介紹到這瞭,更多相關golang讀取配置文件 內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Go語言讀取YAML 配置文件的兩種方式分享
- Go 多環境下配置管理方案(多種方案)
- go學習筆記讀取consul配置文件詳解
- go語言Pflag Viper Cobra 核心功能使用介紹
- go項目中環境變量的配置