【发布时间】:2020-08-19 21:26:34
【问题描述】:
在我的 gorm 模型中,我有用户和个人资料:
type User struct {
ID int
Username string
Password string `json:"-"`
Profile Profile
}
type Profile struct {
UserID int
Gender string
Places string
//...And many more fields
}
当我通过以下方式查找个人资料的完整显示时:
db.Preload("Profile").Where("id = ?", 1).First(&user)
c.JSON(200, user)
客户端将收到的 JSON 结果非常好:
{
"ID": 1,
"Username": {
"String": "",
"Valid": false
},
"Profile": {
"UserID": 1,
"Gender": "men",
"Places": "Home and staying home",
// ...And many more
},
}
但是当我只想列出 ID 和 Username 两个字段时,即使我没有 Preload() 或 Related() Profile,它仍然是一个空集:
db.Where("id = ?", 1).First(&user)
c.JSON(200, user)
// Result
{
"ID": 1,
"Username": {
"String": "",
"Valid": false
},
//below is redundant in this situation
"Profile": {
"UserID": 0,
"Gender": "",
"Places": "",
// ...And many more 0 or "" fields
},
}
我的问题是如何在每次未加载 JSON 响应时忽略配置文件字段?为了节省一些转账费用
【问题讨论】: