我有一个结构体
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"`
}