golang常用库:配置文件解析库-viper使用 (2)

多增加一个json的配置文件,config3.json 配置文件:

{ "redis": "127.0.0.1:33000", "mysql": { "port": 3306, "host": "127.0.0.1", "username": "root", "password": "123456" } }

viper_multi.go

package main import ( "fmt" "github.com/spf13/viper" ) type Config struct { Redis string MySQL MySQLConfig } type MySQLConfig struct { Port int Host string Username string Password string } func main() { // 读取 toml 配置文件 var config1 Config vtoml := viper.New() vtoml.SetConfigName("config") vtoml.SetConfigType("toml") vtoml.AddConfigPath(".") if err := vtoml.ReadInConfig(); err != nil { fmt.Println(err) return } vtoml.Unmarshal(&config1) fmt.Println("read config.toml") fmt.Println("config: ", config1, "redis: ", config1.Redis) // 读取 json 配置文件 var config2 Config vjson := viper.New() vjson.SetConfigName("config3") vjson.SetConfigType("json") vjson.AddConfigPath(".") if err := vjson.ReadInConfig(); err != nil { fmt.Println(err) return } vjson.Unmarshal(&config2) fmt.Println("read config3.json") fmt.Println("config: ", config1, "redis: ", config1.Redis) }

运行:

$ go run viper_multi.go

read config.toml
config:  {127.0.0.1:33000 {0 192.168.1.1 root 123456}} redis:  127.0.0.1:33000
read config3.json
config:  {127.0.0.1:33000 {0 192.168.1.1 root 123456}} redis:  127.0.0.1:33000

四、参考

viper 文档

golang json库gjson的使用

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsffxg.html