我使用包Decoder
中的encoding/json
将JSON配置文件解码为结构。字段名称在文件和结构中具有不同的大小写(由于可见性问题,结构中的小写第一个字符),因此我使用documentation中描述的struct字段标记。 问题是Decoder
似乎忽略这些标记,结构字段为空。任何想法我的代码有什么问题?
{
"DataSourceName": "simple-blog.db"
}
type Config struct {
dataSourceName string `json:"DataSourceName"`
}
func loadConfig(fileName string) {
file, err := os.Open(fileName)
if err != nil {
log.Fatalf("Opening config file failed: %s", err)
}
defer file.Close()
decoder := json.NewDecoder(file)
config = &Config{} // Variable config is defined outside
err = decoder.Decode(config)
if err != nil {
log.Fatalf("Decoding config file failed: %s", err)
}
log.Print("Configuration successfully loaded")
}
loadConfig("config.json")
log.Printf("DataSourceName: %s", config.dataSourceName)
2017/10/15 21:04:11 DB Name:
答案 0 :(得分:3)
您需要导出dataSourceName
字段,因为encoding/json
包需要它们