douyangquan2474 2018-07-08 02:35
浏览 19
已采纳

如何解组毒蛇配置以连字符

I have this following config file defined as toml file:

[staging]
project-id = "projectId"
cluster-name = "cluster"
zone = "asia-southeast1-a"

Then, I have this struct

type ConfigureOpts struct {
    GCPProjectID       string `json:"project-id"`
    ClusterName        string `json:"cluster-name"`
    Zone               string `json:"zone"`
}

Notice that I have different format of ConfigureOpts fieldname vs the one defined in the config file.

I've tried this code, but failed

test_opts := ConfigureOpts{}
fmt.Printf("viper.staging value %+v
", viper.GetStringMap("staging"))
viper.UnmarshalKey("staging", &test_opts)
fmt.Printf("testUnmarshall %+v
", test_opts)

Here is the output

viper.staging value map[zone:asia-southeast1-a project-id:projectId cluster-name:cluster]

testUnmarshall {GCPProjectID: ClusterName: Zone:asia-southeast1-a AuthMode: AuthServiceAccount:}
  • 写回答

1条回答 默认 最新

  • duanhuihui2705 2018-07-08 02:54
    关注

    I got the answer based on this reference https://github.com/spf13/viper/issues/258

    So the solution would be to change any json: tag in ConfigureOpts struct to mapstructure:.

    So this will solve the problem.

    type ConfigureOpts struct {
        GCPProjectID       string `mapstructure:"project-id"`
        ClusterName        string `mapstructure:"cluster-name"`
        Zone               string `mapstructure:"zone"`
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 下图接收小电路,谁知道原理
  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探