不想看,ai帮我总结一下文章
本文小编为大家详细介绍“golang怎么读取ini、json、yaml配置文件”,内容详细,步骤清晰,细节处理妥当,希望这篇“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配置文件”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注本站行业资讯频道。