如何解决JSON 到自定义结构的映射:空值的处理
我正在使用 gin 框架在 Go 中编写 REST API。 在这个 API 中,我有一个自定义结构:
type Task struct {
Id int `gorm:"PRIMARY KEY AUTO_INCREMENT" json:"id"`
Name string `gorm:"NOT NULL" json:"name"`
Important bool `gorm:"NOT NULL" json:"important"`
Done bool `gorm:"NOT NULL" json:"done"`
}
我的更新端点期望请求正文中的任何这些属性为 JSON。只应更改给定的属性。
不幸的用法:
var task Task
c.Bind(&task)
确实以不希望的方式处理空值或不存在的属性。
例如,如果我的数据库中有一个现有的 Task
,它是 important = true
,并且我想通过发送 JSON 将其设置为完成:
{
"done": true
}
对于我的更新端点将同时将重要更改为 false,因为绑定到结构不处理属性的不存在并将其映射到 false(或 0 表示 int 值)。
是否有针对此问题的非黑客且干净的解决方案?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。