doubi1931 2019-09-01 02:56
浏览 174
已采纳

如何使查询结果结构与我在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"
        }
     ]
}
  • 写回答

1条回答 默认 最新

  • duanliao2310 2019-09-01 03:00
    关注

    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:"-"`
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 网络科学导论,网络控制
  • ¥100 安卓tv程序连接SQLSERVER2008问题
  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据