2 回答
TA贡献1797条经验 获得超4个赞
另一种方法是Marshaler为您的类型实现接口,以修改编组到 JSON 的工作方式。该json包在编组之前检查该接口,如果存在,则调用该函数。这是标准库中的接口。
type Marshaler interface {
MarshalJSON() ([]byte, error)
}
您的类型的一个示例实现User如下。
func (u *User) MarshalJSON() ([]byte, error) {
type Temp struct {
Email string
Posts []Post
}
t := Temp{
Email: u.Email,
Posts: u.Posts,
}
return json.Marshal(&t)
}
TA贡献1846条经验 获得超7个赞
你应该用所有字段的 json 标记声明你的结构,Behrooz 在评论中建议的应该可以正常工作
type User struct {
gorm.Model
FirstName string `json:"-" gorm:"not null;default:null"`
LastName string `json:"-" gorm:"not null;default:null"`
Email string `json:"email" gorm:"not null;default:null;unique"`
Password string `json:"-" gorm:"not null;default:null"`
Posts []Posts`json:"posts"`
}
- 2 回答
- 0 关注
- 197 浏览
添加回答
举报