当前位置: 首页 > news >正文

免费建设展示网站秦皇岛市建设银行网点

免费建设展示网站,秦皇岛市建设银行网点,wordpress类似qq空间,制作网页可以用word吗golang使用 viper 无需设置 mapstructure tag 根据配置文件后缀 自动返序列化到结构 解决结构有下划线的字段解析不成功问题 viper 正常加载配置文件 golang viper 其中可以用来 查找、加载和反序列化JSON、TOML、YAML、HCL、INI、envfile和格式的配置文件 配置文件 test_to…golang使用 viper 无需设置 mapstructure tag 根据配置文件后缀 自动返序列化到结构 解决结构有下划线的字段解析不成功问题 viper 正常加载配置文件 golang viper 其中可以用来 查找、加载和反序列化JSON、TOML、YAML、HCL、INI、envfile和格式的配置文件 配置文件 test_toml.toml http_addr :8082 grpc_addr :8083 jaeger_url http://localhost:14268/api/traces tracing truegolang代码 type ConfigTest struct {HttpAddr string json:http_addr toml:http_addr yaml:http_addrGrpcAddr string json:grpc_addr toml:grpc_addr yaml:grpc_addrJaegerUrl string json:jaeger_url toml:jaeger_url yaml:jaeger_url mapstructure:jaeger_urlTracing bool toml:tracing json:tracing yaml:tracing // opentelemetry tracing }// jaeger 加载配置文件 func TestSourceFile_Unmarshal(t *testing.T) {filePath : ./test_toml.tomlviper.SetConfigFile(filePath)if err : viper.ReadInConfig(); err ! nil {t.Error(err)}c : ConfigTest{}if err : viper.Unmarshal(c); err ! nil {t.Error(err)}logger.Infow(Unmarshal file sucess, v, c) } 打印返序列化的配置结构 {level:info,ts:2023-08-27T21:35:27.0410800,caller:config/source_file_test.go:31,msg:Unmarshal file sucess,v:{http_addr:,grpc_addr:,jaeger_url:http://localhost:14268/api/traces,tracing:true}}可以看到带下划线的字段,不加 mapstructure 标签,是不会反序列化 不加 mapstructure tag实现自动反序列化 查看viper Unmarshal 代码 func (v *Viper) Unmarshal(rawVal interface{}, opts ...DecoderConfigOption) error {return decode(v.AllSettings(), defaultDecoderConfig(rawVal, opts...)) } func decode(input interface{}, config *mapstructure.DecoderConfig) error {decoder, err : mapstructure.NewDecoder(config)if err ! nil {return err}return decoder.Decode(input) } func NewDecoder(config *DecoderConfig) (*Decoder, error) {if config.TagName {config.TagName mapstructure}// ... } 从代码看出 Viper使用的是 github.com/mitchellh/mapstructure来解析值mapstructure 用于将通用的map[string]interface{}解码到对应的 Go 结构体中默认情况下mapstructure 使用结构体中字段的名称做这个映射,不区分大小写,比如 Name 字段可以映射到 name、NAME、NaMe 等等如果没有指定 tagName 则默认为 mapstructure,这也是为什么带下划线的字段不加 mapstructure 标签无法解析的原因viper 中Unmarshal的第二个参数是可以指定 DecoderConfigOption 的,从而可以指定 tagName viper根据文类型件自动解码到结构 读取文件后缀比如 toml 根据后缀设置 tagName 调用 viper.Unmarshal解析 func TestSourceFile_Unmarshal1(t *testing.T) {filePath : ./test_toml.tomlc : ConfigTest{}if err : viperUnmarshal(c, filePath); err ! nil {t.Error(err)}logger.Infow(Unmarshal file sucess, v, c) }func viperUnmarshal(v interface{}, configPath string) error {var tagName stringext : filepath.Ext(configPath)if len(ext) 1 {tagName ext[1:]}// set decode tag_name, default is mapstructuredecoderConfigOption : func(c *mapstructure.DecoderConfig) {c.TagName tagName}cViper : viper.New()cViper.SetConfigFile(configPath)if err : cViper.ReadInConfig(); err ! nil {return err}return cViper.Unmarshal(v, decoderConfigOption) }
http://wiki.neutronadmin.com/news/249101/

相关文章:

  • html网站源码wordpress板娘插件
  • 广州黄埔做网站公司哪家好wordpress php7 报错
  • 网站建设的一般流程是杭州市拱墅区建设局网站
  • 建设工程规范在哪个网站下载wordpress 个人
  • 建设一个网络交友的网站的论文网站商务通js代码
  • 个人网站 网站教程安卓apk开发
  • 做进口假体下巴的网站网页源代码怎么打开
  • 怎样找到网站建设设置模板html5网站建设企业
  • 电子商务网站的建设和流程网页设计实验报告课程建议
  • 网站查询站长工具做免费的网站教程
  • 云南网站建设及优化html5的网站设计
  • 建设网站技术方案自己做电商网站
  • 注册公司网站模版企业建站都有什么网站
  • 西安网站建设畅网什么情况下需要建设网站
  • 做网站要用到哪些技术承德市人才信息网
  • 游戏网站建设需要多少钱asp.net 企业网站系统
  • 网站建设 中企动力烟台新手如何做企业网站
  • 自动建站网站源码网站首页新增悬浮小窗怎么做
  • asp.net 手机网站开发wordpress 标签中文乱码
  • 茂名网站开发服务商烟台网站排名优化报价
  • 个人网站建设小江游戏网站建设网
  • 高端网站设计一般多少钱网站收录不好
  • 溧阳做网站的哪家好深圳网站网络推广公司
  • 网站优化怎样提高网站用户体验好用的wordpress app
  • 学校网站建设框架wordpress化妆品主题
  • 做网站的属于什么行业淘宝网站开发实训报告
  • 企业建设网站目的是什么自己怎样免费建设网站
  • 如何做地方网站营销策略有哪些内容
  • 在百度怎么做网站和推广one dirve做网站
  • 重庆点优建设网站公司吗黄金网软件app大全下载