我正在尝试编写一个采用 json 文件名和配置结构的配置包。它应该将 json 解组到传入的结构中并返回它。我正在尝试使用接口,以便我可以传递任何我想要的结构
错误是:
panic: interface conversion: interface {} is map[string]interface {}, not *main.ConfigurationData
我不太确定如何解决这个问题。
这是我的主要包裹
package main
import (
"config"
"commons"
)
type ConfigurationData struct {
S3ARN string `json:"S3ARN"`
SQSQueueUrl string `json:"SQSQueueUrl"`
}
var configData *ConfigurationData
func main(){
configData=config.Load("aws.config.json",configData).(*ConfigurationData)
commons.Dump(configData)
}
这是我的配置包
package config
import (
"os"
"encoding/json"
"sync"
"commons"
)
var configLock = new(sync.RWMutex)
func Load(filename string,config interface{})interface{} {
file, err := os.Open(filename)
commons.CheckErrorf(err, "Config Open Error")
defer file.Close()
decoder := json.NewDecoder(file)
configLock.Lock()
err = decoder.Decode(&config)
commons.CheckErrorf(err, "Config Decode Error")
configLock.Unlock()
return config
}
弑天下
精慕HU
相关分类