为了账号安全,请及时绑定邮箱和手机立即绑定

将子结构转换为字符串并返回

将子结构转换为字符串并返回

Go
MMTTMM 2023-02-21 16:13:03
我在使用时遇到了一些麻烦UnmarshalJSON,MarshalJSON我不确定我是否正确理解了它们,或者至少我有一个我无法发现的错误,并且在我 3 小时的谷歌搜索中我还没有找到,所以就这样吧。我有以下用户结构type User struct {    ID        uuid.UUID            `gorm:"primaryKey,type:string,size:36,<-:create" json:"id"`    Username  string               `gorm:"unique" json:"username"`    Password  PasswordHash         `gorm:"type:string" json:"password"`    CreatedAt time.Time            `gorm:"autoCreateTime:milli" json:"created_at"`    UpdatedAt time.Time            `gorm:"autoUpdateTime:milli" json:"updated_at,omitempty"`    DeletedAt gorm.DeletedAt       `gorm:"index" json:"deleted_at,omitempty"`}当我尝试json.Marshal使用内置encoding/json库中的函数将其转换为 JSON 时,我得到以下信息:{"id":"3843298e-74d4-4dd7-8eff-007ab34a4c19","username":"root","password":{},"created_at":"0001-01-01T00:00:00Z","updated_at":"0001-01-01T00:00:00Z","deleted_at":null}我期待这样的事情:{"id":"3843298e-74d4-4dd7-8eff-007ab34a4c19","username":"root","password":"$argon2id$v=19$m=4194304,t=1,p=64$Z9EFSTk26TQxx+Qv9g58gQ$4At0rvvv9trRcFZmSMXY0nISBuEt+1X8mCRAYbyXqSs","created_at":"0001-01-01T00:00:00Z","updated_at":"0001-01-01T00:00:00Z","deleted_at":null}
查看完整描述

1 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

您已经MarshalJSON定义了一个接收者*PasswordHash,但您的值是类型PasswordHash。将接收器更改为PasswordHash并按预期工作:https ://go.dev/play/p/WukE_5JBEPL


查看完整回答
反对 回复 2023-02-21
  • 1 回答
  • 0 关注
  • 77 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信