2
我正在將一些JSON解碼到一個結構中,並且我想處理未提供特定字段的情況。檢查一個地圖是否在Golang中初始化
結構:
type Config struct {
SolrHost string
SolrPort int
SolrCore string
Servers map[string][]int
}
JSON解碼:
{
"solrHost": "localhost",
"solrPort": 8380,
"solrCore": "testcore",
}
在解碼的JSON的方法,我想檢查map[string][]int
已經初始化,如果沒有,做所以。
當前代碼:
func decodeJson(input string, output *Config) error {
if len(input) == 0 {
return fmt.Errorf("empty string")
}
decoder := json.NewDecoder(strings.NewReader(input))
err := decoder.Decode(output)
if err != nil {
if err != io.EOF {
return err
}
}
// if output.Server.isNotInitialized...
return nil
}
我可以利用的recover()
?這是實現我的任務「最好」的方式嗎?
另外,使用'err:= json.Unmarshal([] byte(input),output)更簡單。如果err!= nil {return err}'。 –