我的应用从配置文件中读取设置:
file, _ := os.Open("config.json")
config := config.Config{}
err := json.NewDecoder(file).Decode(&config)
if err != nil {
//handle err
}
我的JSON配置文件如下所示:
{
"site" : {
"url" : "https://example.com"
},
"email" : {
"key" : "abcde"
}
}
我的结构是:
type Site struct {
Url string
}
type Email struct {
Key string
}
type Config struct {
Site Site
Email Email
}
我希望从JSON文件中删除email
字段,以表明不会使用任何电子邮件帐户:
{
"site" : {
"url" : "https://example.com"
}
}
如何检测Go中的JSON文件中是否存在特定字段,这样就可以了解以下内容:
if (Email field found in JSON file) {
output "You want to receive emails"
} else {
output "No emails for you!"
}
答案 0 :(得分:12)
将Config
更改为
type Config struct {
Site Site
Email *Email
}
使用c.Email != nil
测试是否将电子邮件指定为JSON文件中的字符串值。如果c.Email == nil
,则未指定电子邮件或null
。