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

I want to make the structure of the query results match what I have stated in GORM Select because right now it only matches the Struct structure. How do i make it work? Thank you in advance

i've tried to make new Struct and it works, but i dont know is it a best practice or not

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"
        }
     ]
}

It looks like all you need to do is to omit empty fields. You can do that by adding omitempty to json tags:

    Password string `json:"password,omitempty"`
    Token    string `json:"token,omitempty" gorm:"-"`