golang读取各种配置文件(ini、json、yaml)
作者:FootMark.run 时间:2024-05-09 14:51:49
日常项目中,读取各种配置文件是避免不了的,这里介绍一个能读取多种配置文件的库,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{}
来源:https://blog.csdn.net/qq_36034503/article/details/124024889
标签:golang,读取,配置文件
0
投稿
猜你喜欢
pandas.DataFrame.from_dict直接从字典构建DataFrame的方法
2022-02-22 03:13:28
MySQL 性能优化的最佳20多条经验分享
2024-01-22 00:42:49
jsp include文件时的一个乱码解决方法
2024-03-27 19:34:28
Python GUI布局尺寸适配方法
2022-03-07 05:52:26
Form Post提交容量大的数据
2011-03-31 10:53:00
使用Python读取大文件的方法
2022-02-18 00:43:35
mysql 主从服务器的简单配置
2009-09-06 12:06:00
ul设置浮动后不能自适应高度
2011-01-25 12:48:00
现代Python编程的四个关键点你知道几个
2023-11-22 02:17:42
对python创建及引用动态变量名的示例讲解
2023-02-03 07:10:49
浅谈SQL与PLSQL开发实战
2011-05-05 08:15:00
python之如何查找多层嵌套字典的值
2021-12-05 08:57:07
Python中Selenium模拟JQuery滑动解锁实例
2021-10-21 09:49:52
深入理解Python分布式爬虫原理
2023-02-06 14:33:30
跟老齐学Python之不要红头文件(2)
2023-12-21 23:22:14
教你用pyecharts绘制各种图表案例(效果+代码)
2021-07-30 21:56:54
Python原始字符串(raw strings)用法实例
2021-05-04 18:29:27
asp我对后台安全的一些做法
2011-09-01 19:22:09
MySQL函数一览_MySQL函数全部汇总
2024-01-21 17:43:11
Python使用Requests请求网页方式
2022-10-08 06:01:09