标签:name ESS com 配置 信息 str imp print 序列
Viper是一个方便Go语言应用程序处理配置信息的库。它可以处理多种格式的配置。它支持的特性:
viper.SetDefault("time", "2019-7-14") viper.SetDefault("notifyList", []string{"maple","ffm"})
package main import ( "fmt" "github.com/fsnotify/fsnotify" "github.com/spf13/viper" ) viper:=viper.New() viper.WatchConfig() viper.OnConfigChange(func(e fsnotify.Event) { fmt.Println("Config file changed:", e.Name) })
#json文件 { "appId": "123456789", "secret": "maple123456", "host": { "address": "localhost", "port": 5799 } }
package main import ( "fmt" "github.com/spf13/viper" ) //定义config结构体 type Config struct { AppId string Secret string Host Host } //json中的嵌套对应结构体的嵌套 type Host struct { Address string Port int } func main() { config := viper.New() config.AddConfigPath("./kafka_demo") config.SetConfigName("config") config.SetConfigType("json") if err := config.ReadInConfig(); err != nil { panic(err) } fmt.Println(config.GetString("appId")) fmt.Println(config.GetString("secret")) fmt.Println(config.GetString("host.address")) fmt.Println(config.GetString("host.port")) //直接反序列化为Struct var configjson Config if err :=config.Unmarshal(&configjson);err !=nil{ fmt.Println(err) } fmt.Println(configjson.Host) fmt.Println(configjson.AppId) fmt.Println(configjson.Secret) }
标签:name ESS com 配置 信息 str imp print 序列
原文地址:https://www.cnblogs.com/angelyan/p/11185113.html