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}'。 –