凯发k8天生赢家一触即发

golang怎么读取ini、json、yaml配置文件 -凯发k8天生赢家一触即发

2023-11-07

不想看,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配置文件”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注本站行业资讯频道。

网站地图