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

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

如何更改 Go 結(jié)構(gòu)中的 JSON 標(biāo)記?

如何更改 Go 結(jié)構(gòu)中的 JSON 標(biāo)記?

Go
小唯快跑啊 2022-08-24 11:14:34
我有一個看起來像這樣的結(jié)構(gòu)type MediaFile struct {    ID                   string    `json:"id"`                Secret               string    `json:"-"`    Title                string    `json:"title"`}我希望能夠在滿足條件時將 Secret 的腳本標(biāo)記更改為。json:"secret"結(jié)構(gòu) MediaFile 在代碼的其他部分中已被大量引用,因此使用具有不同名稱的不同結(jié)構(gòu)是不可行的。我試圖使用像下面這樣的指針。請注意,我已經(jīng)刪除了結(jié)構(gòu)媒體文件的定義,如前面的示例所示。type AlterMediaFile struct {    ID                   string    `json:"id"`                Secret               string    `json:"secret"`    Title                string    `json:"title"`}type MediaFile struct {    *AlterMediaFile}但它導(dǎo)致我收到了很多升級字段錯誤,因?yàn)樗腁lterMediaFile基本上只是MediaFile的嵌套類。那么,有沒有簡單的方法可以讓我能夠?qū)ⅰ懊孛堋蹦_本標(biāo)簽從更改為?json:"-"json:"secret"
查看完整描述

2 回答

?
炎炎設(shè)計(jì)

TA貢獻(xiàn)1808條經(jīng)驗(yàn) 獲得超4個贊

您不能在運(yùn)行時將“Secret”腳本標(biāo)記從 更改為 。json:"-"json:"secret"

但是,可以使用 選項(xiàng) ,指定如果字段具有空值(在本例中為空字符串),則應(yīng)從編碼中省略該字段。omitemptyjson:"secret,omitempty"

當(dāng)不滿足條件時,您只需將字段設(shè)置為空字符串(這可以通過數(shù)據(jù)庫完成),它就不會顯示在json數(shù)據(jù)中。Secret


查看完整回答
反對 回復(fù) 2022-08-24
?
慕碼人8056858

TA貢獻(xiàn)1803條經(jīng)驗(yàn) 獲得超6個贊

你可以編寫自己的MarshalJSON/UnmarshalJSON方法。


type MediaFile struct {

    ID     string

    Secret string

    Title  string

}


type jsonMediaFile struct {

    ID    string `json:"id"`

    Title string `json:"title"`

}


type jsonSecretMediaFile struct {

    *jsonMediaFile

    Secret string `json:"secret"`

}


func (mf *MediaFile) MarshalJSON() ([]byte, error) {

    jsonMF := jsonMediaFile{

        ID:    mf.ID,

        Title: mf.Title,

    }


    if isNeedMarshalSecret() {

        return json.Marshal(jsonSecretMediaFile{

            jsonMediaFile: &jsonMF,

            Secret:        mf.Secret,

        })

    }

    

    return json.Marshal(jsonMF)

}


查看完整回答
反對 回復(fù) 2022-08-24
  • 2 回答
  • 0 關(guān)注
  • 109 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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