我有一個當前格式的 dotenv 文件KEY_PATH=/keysLOG_LEVEL=WARNINGDB_CUSTOMER1=dboneDB_CUSTOMER2=dbtwo我還有一個結構的形式type MyConfiguration struct { KeyPath string `mapstructure:"KEY_PATH"` CustomerDB map[string]string `<???>` LogLevel string `mapstructure:"LOG_LEVEL"`}我正在尋找并且未能找到一種方法,我可以手動(例如:向Viper詢問所有帶有前綴DB_的鍵,然后自己設置它們)或自動(但似乎Viper沒有辦法以這種方式提取鍵/值)的形式映射到映射。DB_CUSTOMER1=val"CUSTOMER1": "val"我將不勝感激任何指點。謝謝!
1 回答

手掌心
TA貢獻1942條經驗 獲得超3個贊
spf13/viper主要使用mapstructure包在一個原生Go類型到另一個原生Go類型之間進行轉換,即在取消封送處理時。您需要定義一個注記,該注記將導致任何未使用的值進入此映射。有一個選項可以收集此類提醒值。您需要修改映射以將接口作為
CustomerDB map[string]interface{} `mapstructure:",remain"`
這會將所有字段值作為接口類型收集到映射中,您可以鍵入 assert 以獲取所需的字符串值。DB_*
- 1 回答
- 0 關注
- 91 瀏覽
添加回答
舉報
0/150
提交
取消