2 回答

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超4個(gè)贊
另一種方法是Marshaler為您的類型實(shí)現(xiàn)接口,以修改編組到 JSON 的工作方式。該json包在編組之前檢查該接口,如果存在,則調(diào)用該函數(shù)。這是標(biāo)準(zhǔn)庫中的接口。
type Marshaler interface {
MarshalJSON() ([]byte, error)
}
您的類型的一個(gè)示例實(shí)現(xiàn)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貢獻(xiàn)1846條經(jīng)驗(yàn) 獲得超7個(gè)贊
你應(yīng)該用所有字段的 json 標(biāo)記聲明你的結(jié)構(gòu),Behrooz 在評論中建議的應(yīng)該可以正常工作
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 關(guān)注
- 241 瀏覽
添加回答
舉報(bào)