she*_*n89 4 json dictionary go
我正在将一些JSON解码为一个结构,我想处理没有提供特定字段的情况.
结构:
type Config struct {
SolrHost string
SolrPort int
SolrCore string
Servers map[string][]int
}
Run Code Online (Sandbox Code Playgroud)
要解码的JSON:
{
"solrHost": "localhost",
"solrPort": 8380,
"solrCore": "testcore",
}
Run Code Online (Sandbox Code Playgroud)
在解码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
}
Run Code Online (Sandbox Code Playgroud)
我可以利用recover()吗?这是实现我的任务的"最好的"方式吗?
Ain*_*r-G 11
任何地图的零值都是nil,所以只需检查它:
if output.Servers == nil { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
或者,您也可以检查其长度.这也处理空映射的情况:
if len(output.Servers) == 0 { /* ... */ }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3557 次 |
| 最近记录: |