如何使查询结果结构与我在 GORM Select 上声明的结构相匹配

我想让查询结果的结构与我在 GORM Select 中所说的相匹配,因为现在它只匹配 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"

        }

     ]

}


拉丁的传说
浏览 97回答 1
1回答

慕斯王

看起来您所需要做的就是省略空字段。您可以通过向 json 标签添加 omitempty 来做到这一点:    Password string `json:"password,omitempty"`     Token    string `json:"token,omitempty" gorm:"-"`
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go