我在Golang项目中使用Gorm . 我有一个Rest-API,我得到一个请求来制作进程并返回一个对象,所以,例如我有一个像这样的结构用户:
type User struct {
gorm.Model
Password []byte
Active bool
Email string
ActivationToken string
RememberPasswordToken string
}
现在,当我创建一个用户时,我将其编码为JSON:
json.NewEncoder(w).Encode(user)
但在客户端,我收到一些我不想发送/接收的字段,例如:Created_At,Deleted_At,Updated_At,Password . 那么,忽略或隐藏响应中的字段的最佳方法是什么?我看到我可以使用一个名为Reflect的库,但是对于一个简单的事情似乎有很多工作,我想知道是否有另一种方法 . 非常感谢你
3 回答
正如Gavin所说,我建议使用两个独立的模型,并使模型能够转换为正确的返回类型 .
车型/ user.go
应用程序/ user.go
如果要返回固定对象,可以使用
json:"-"
更改标记以决定使用json发送的元素 . 对于gorm.Model中的元素:您可以将它们替换为您自己的结构:
所以,你的User结构就是这样的:
对我来说帮助将
json:"-"
添加到gorm.Model例如: