第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

GORM 省略 JSON 響應(yīng)中的字段

GORM 省略 JSON 響應(yīng)中的字段

Go
三國紛爭 2023-01-03 14:11:26
我想在我的 JSON 響應(yīng)中省略一些字段。目前我有一個(gè)返回新結(jié)構(gòu)的類型接收器userToJson。然后我將其傳遞給json.NewEncoder(). 但是我想知道這是否是使用 GORM 省略字段的最佳方式。預(yù)先謝謝你!package serverimport (    "gorm.io/gorm")type User struct {    gorm.Model    FirstName string `gorm:"not null;default:null"`    LastName  string `gorm:"not null;default:null"`    Email     string `gorm:"not null;default:null;unique"`    Password  string `gorm:"not null;default:null"`    Posts     []Posts}type userToJson struct {    Email string    Posts []Posts}func (u *User) toJson() userToJson {    return userToJson{        Email: u.Email,        Posts: u.Posts,    }}
查看完整描述

2 回答

?
繁星coding

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)

}


查看完整回答
反對 回復(fù) 2023-01-03
?
喵喵時(shí)光機(jī)

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"`

}


查看完整回答
反對 回復(fù) 2023-01-03
  • 2 回答
  • 0 關(guān)注
  • 241 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號