【发布时间】:2022-08-04 10:19:48
【问题描述】:
我有一个结构
type Settings struct {
Status bool `json:\"status,omitempty\"`
AvailableStatus bool `json:\"available_status,omitempty\"`
}
我正在使用这个结构来保存数据并在我的 GOAPis 中显示数据
例如,如果对于我的保存数据,我的 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 是必需的。
或任何其他将可用状态设置为必填字段的方法..
-
不太清楚你为什么需要
omitempty...请你澄清一下吗? -
我还认为您可以在此处删除 omit empty。
-
omitempty记录在忽略false值,这就是它正在做的事情。 -
@blackgreen我更新了我的问题..我需要保存并在同一个结构中获取作品
-
如果你只做 json.Unmarshal,无论有没有字段,你都不会得到错误。 go.dev/play/p/1QacQ2NvYBA看来验证的实现有问题,无法达到你的目的,所以建议写验证码,问个问题。
标签: go