我正在将一个JSON用户对象发布到我的Golang应用程序,在那里我将'req.body'解码为'User'结构.
err := json.NewDecoder(req.Body).Decode(user)
//handle err if there is one
Run Code Online (Sandbox Code Playgroud)
和'用户'结构:
type User struct {
Name string `json:"name,omitempty"`
Username string `json:"username,omitempty"`
Email string `json:"email,omitempty"`
Town string `json:"town,omitempty"`
//more fields here
}
Run Code Online (Sandbox Code Playgroud)
虽然我不需要实际验证方面的帮助,但我想知道如果仅将用户名作为JSON对象的一部分包含在内,它将如何验证用户名.目前,如果未包含用户名,则User.Username仍然存在,但是为空""
如何查看"用户名"是否包含在POSTed对象中?
我有两个结构
type A struct {
a int
b string
}
type B struct {
A
c string
// more fields
}
Run Code Online (Sandbox Code Playgroud)
我想将类型A的变量转换为类型B(A仅定义了对某些部分至关重要的基本字段,而B另一方面包含"完整"数据).
是否可以在Go中,或者我是否必须手动复制字段(或创建方法A.GetB()或类似的东西并使用它将A转换为B)?
我有一个用户结构,其中包含诸如密码之类的敏感字段:
type User struct {
UID string `json:"uid" binding:"required"`
Password string `json:"password" binding:"required"`
EmailAddress string `json:"email" binding:"required"`
}
Run Code Online (Sandbox Code Playgroud)
现在,我希望能够使用此结构来注册用户并进行更新,删除以及查看。我不希望将密码序列化以供查看。我当然可以制作一个自定义编组,但这是唯一的方法吗?我尝试使用该json:"-"选项,但是这也会在取消编组时将其忽略,这是我不希望的。有没有更好的办法?
编辑: 为了让你们中的一些人放心,我当然不会以明文形式存储密码。它是密码的bcrypt哈希,但仍然如此。搜索用户时,我不希望它返回。