Go omitempty bool字段-不显示false类型



我有一个结构体

type Settings struct {
Status             bool `json:"status,omitempty"`
AvailableStatus        bool `json:"available_status,omitempty"`
}

我使用这个结构体来保存数据并在我的goapi中显示数据

for例如,如果对于我的保存数据,我的json正文是这样的

{"settings":{"status":true,
"available_status":false}}

保存后,我使用Get-API获取数据,我得到这样的数据

"settings": {
"status": true
}

只有真实的数据显示,我需要显示这两个数据,并需要设置omitempty也(省略空保存,json创建和使用json后,我正在检查验证)

我该怎么做?

用于保存数据,不需要所有字段。我可能会像下面这样在我的api体中给出json。

{"settings":{"status":true,
"available_status":false}}

{"settings":{"status":true}}

我也想这样做。我为每个模型创建了json,验证是在json中检查。如果我没有添加omitempty字段,它将显示错误available_status是必需的。

或任何其他方法设置available_status所需的文件..

omitempty"仅当value等于所选类型的零值时省略。如果你想从struct中创建自定义json,你可以从struct中创建map并使用json。Marshal或其他库,如https://github.com/tidwall/sjson

使用指针

type Settings struct {
Status             *bool `json:"status,omitempty"`
AvailableStatus    *bool `json:"available_status,omitempty"`
}

最新更新