viper4android fxprf配置文件,viper配置文件读取

该博客介绍了如何使用github.com/spf13/viper库来读取JSON配置文件,并将其解析到结构体中。同时,它展示了如何监听配置文件的变化,以便在文件更新时自动重新加载配置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用

json文件:config/user.json

{

"name":"xj",

"sex":"boy"

}

使用

package service

import (

"github.com/spf13/viper"

)

type User struct{

Name string `json:"name" `

Sex string `json:"sex" `

}

//初始化

func init(){

v := viper.New()

//第一种读取方式

v.SetConfigFile("config/user.json") //直接读取配置文件

//第二种读取方式

v.SetConfigName("user") //设置配置文件的名字

v.AddConfigPath("./config/") //添加配置文件所在的路径

v.SetConfigType("json") //设置配置文件类型,可选

//读取配置文件

errv := v.ReadInConfig() // 加载配置文件内容

//处理读取错误

if errv!=nil{

logs.Error("v read config error......%s",errv.Error())

}

//获取数据

name:=v.Get("name")

sex:=v.Get("sex")

fmt.Printf("name=%s\nsex=%s",name,sex)

//解析文件到结构体

userModel:=User{}

errByUnMarshal:=v.Unmarshal(&userModel)

//注释---start

errByUms := v.Unmarshal(&WebLogsConfig, func(config *mapstructure.DecoderConfig) {

//设置解析结构体对应的标签----默认是"mapstructure"

config.TagName = "json"//设置对应标签为"json"

})

//注释---end

if errByUnMarshal!=nil {

logs.Error("v Unmarshal config to struct error......%s",errByUnMarshal.Error())

}

fmt.Printf("name=%s\nsex=%s",userModel.Name,userModel.Sex)

//监听配置文件改变

//监听配置文件改变

v.WatchConfig()

v.OnConfigChange(func(in fsnotify.Event) {

//配置文件改变

errByRead := v.ReadInConfig()

if errByRead != nil {

logs.Error("package model,logs_config init() v read config error......%s", errByRead.Error())

}

errByUms := v.Unmarshal(&WebLogsConfig, func(config *mapstructure.DecoderConfig) {

//设置解析对应标签

config.TagName = "json"

})

if errByUms != nil {

logs.Error("package model,logs_config init() v unmarshal config to struct error......%s", errByUms.Error())

}

})

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值