我有一個如下所示的組態檔:
apps:
customer1:
upload_path: "/opt/uploads/customer1"
local_path: "/opt/ready/customer1"
bucket: "b1"
customer2:
upload_path: /opt/uploads/customer2
local_path: opt/ready/customer2,
bucket: "b2"
我正在使用 Viper 加載和讀取組態檔。
我正在解組上述配置并將其映射到以下結構:
type AppConfig struct {
UploadPath string `mapstructure:"upload_path"`
LocalPath string `mapstructure:"local_path"`
Bucket string `mapstructure:"bucket"`
}
appconfigs []*AppConfig
viper.SetConfigName(configName)
viper.SetConfigType("yaml")
viper.AddConfigPath(".")
viper.UnmarshalKey("apps", &appconfigs)
我要解決的問題是獲取條目標頭(即 customer1 和 customer2),而不必在我的組態檔中有冗余欄位并最終得到:
apps:
customer1:
name: customer1
upload_path: "/opt/uploads/customer1"
local_path: "/opt/ready/customer1"
bucket: "b1"
uj5u.com熱心網友回復:
可以將配置解組到地圖:
var appconfigs map[string]*AppConfig
viper.UnmarshalKey("apps", &appconfigs)
您可以從地圖鍵中獲取名稱。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/512014.html
標籤:去毒蛇去
