golang讀取各種配置文件(ini、json、yaml)
更新時間:2022年05月13日 15:15:06 作者:FootMark.run
日常項目中,讀取各種配置文件是避免不了的,本文主要介紹了golang讀取各種配置文件(ini、json、yaml),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
日常項目中,讀取各種配置文件是避免不了的,這里介紹一個能讀取多種配置文件的庫,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{}
到此這篇關(guān)于golang讀取各種配置文件(ini、json、yaml)的文章就介紹到這了,更多相關(guān)golang讀取配置文件 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
深入分析Go?實現(xiàn)?MySQL?數(shù)據(jù)庫事務(wù)
本文深入分析了Go語言實現(xiàn)MySQL數(shù)據(jù)庫事務(wù)的原理和實現(xiàn)方式,包括事務(wù)的ACID特性、事務(wù)的隔離級別、事務(wù)的實現(xiàn)方式等。同時,本文還介紹了Go語言中的事務(wù)處理機制和相關(guān)的API函數(shù),以及如何使用Go語言實現(xiàn)MySQL數(shù)據(jù)庫事務(wù)。2023-06-06