我想让查询结果的结构与我在 GORM Select 中声明的结构相匹配,因为现在它只与 Struct 结构相匹配。我如何让它工作?提前谢谢你
我已经尝试制作新的 Struct 并且它有效,但我不知道它是否是最佳实践
type User struct {
User_Id uint `json:"user_id" gorm:"column:user_id; PRIMARY_KEY"`
Email string `json:"email"`
Password string `json:"password"`
Token string `json:"token" gorm:"-"`
}
func GetUsers() map[string]interface{} {
users := []User{}
GetDB().Table("app_user").Select("user_id, email").Find(&users)
resp := u.Message(true, "All users")
resp["users"] = users
return resp
}
//actual result
{
"message": "All users",
"status": true,
"users": [
{
"user_id": 1732,
"email": "aaaaaaa@gmail.com",
"password": "",
"token": ""
},
{
"user_id": 1733,
"email": "bbbbbbb@gmail.com",
"password": "",
"token": ""
},
]
}
//Expected result
{
"message": "All users",
"status": true,
"users": [
{
"user_id": 1732,
"email": "aaaaaaa@gmail.com"
},
{
"user_id": 1733,
"email": "bbbbbbb@gmail.com"
}
]
}
最佳答案
看起来您需要做的就是省略空字段。您可以通过向 json 标签添加 omitempty 来做到这一点:
Password string `json:"password,omitempty"`
Token string `json:"token,omitempty" gorm:"-"`
关于go - 如何使查询结果结构与我在 GORM Select 上声明的结构相匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57742892/