Preflight Checklist
- [X] I have searched the issue tracker for an issue that matches the one I want to file, without success.
- [X] I am not looking for support or already pursued the available support channels without success.
- [X] I have checked the troubleshooting guide for my problem, without success.
Viper Version
1.16
Go Version
1.20.4
Config Source
Files
Format
YAML
Repl.it link
No response
Code reproducing the issue
// RootDir would not be set the value
// in Annotation, space char after mapstructure
// bad
type Log struct {
Level string `mapstructure:"level" json:"level" yaml:"level"`
RootDir string `mapstructure: "root_dir" json:"root_dir" yaml:"root_dir"`
}
// good
// in Annotation, no space char after mapstructure
type Log struct {
Level string `mapstructure:"level" json:"level" yaml:"level"`
RootDir string `mapstructure:"root_dir" json:"root_dir" yaml:"root_dir"`
}
by this way to load the yaml and set the value
// Init Config
package boostrap
import (
"fmt"
"gin-oam-cni/global"
"os"
"github.com/fsnotify/fsnotify"
"github.com/spf13/viper"
)
// My Init func
func InitConfig() *viper.Viper {
configFile := "config.yaml"
if configEnv := os.Getenv("VIPER_CONFIG"); configEnv != "" {
configFile = configEnv
}
// init viper
v := viper.New()
v.SetConfigFile(configFile)
v.SetConfigType("yaml")
v.AddConfigPath(".")
if err := v.ReadInConfig(); err != nil {
panic(fmt.Errorf("read config failed: %w", err))
}
// dym load config
v.WatchConfig()
v.OnConfigChange(func(in fsnotify.Event) {
fmt.Println("config file changed:", in.Name)
if err := v.Unmarshal(&global.App.Config); err != nil {
fmt.Println(err)
}
})
// unmarshal, it also has no error while no set the value !!! bug
if err := v.Unmarshal(&global.App.Config); err != nil {
fmt.Println(err)
}
return v
}
Expected Behavior
two code, RootDir value must be set both.
Actual Behavior
RootDir value must be set.
but only: IN GOOD CODE: Level, RootDir has set. IN BAD CODE: Level has set.
two code has diff in Annotation, space char after mapstructure or not.
Steps To Reproduce
No response
Additional Information
No response
Comment From: github-actions[bot]
👋 Thanks for reporting!
A maintainer will take a look at your issue shortly. 👀
In the meantime: We are working on Viper v2 and we would love to hear your thoughts about what you like or don't like about Viper, so we can improve or fix those issues.
⏰ If you have a couple minutes, please take some time and share your thoughts: https://forms.gle/R6faU74qPRPAzchZ9
📣 If you've already given us your feedback, you can still help by spreading the news, either by sharing the above link or telling people about this on Twitter:
https://twitter.com/sagikazarmark/status/1306904078967074816
Thank you! ❤️
Comment From: amankr-novo
Hey there, Any update on this? I am too facing this similar issue with JSON configurations files
Comment From: github-actions[bot]
Issues with no activity for 30 days are marked stale and subject to being closed.