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

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

在golang中執(zhí)行json Unmarshal時(shí)如何將默認(rèn)值設(shè)置為映射值?

在golang中執(zhí)行json Unmarshal時(shí)如何將默認(rèn)值設(shè)置為映射值?

Go
炎炎設(shè)計(jì) 2021-12-20 10:52:24
我有一個(gè)這樣的結(jié)構(gòu):package mainimport (    "encoding/json"    "fmt")type request struct {    Version    string               `json:"version"`    Operations map[string]operation `json:"operations"`}type operation struct {    Type   string `json:"type"`    Width  int    `json:"width"`    Height int    `json:"height"`}func main() {    jsonStr := "{\"version\": \"1.0\", \"operations\": {\"0\": {\"type\": \"type1\", \"width\": 100}, \"1\": {\"type\": \"type2\", \"height\": 200}}}"    req := request{         Version: "1.0",    }    err := json.Unmarshal([]byte(jsonStr), &req)    if err != nil {        fmt.Println(err.Error())    } else {        fmt.Println(req)    }}我可以將 Version = "1.0" 設(shè)置為默認(rèn)值,但如何將默認(rèn)值設(shè)置為 Width 和 Height?
查看完整描述

1 回答

?
撒科打諢

TA貢獻(xiàn)1934條經(jīng)驗(yàn) 獲得超2個(gè)贊

編寫(xiě)一個(gè)解組函數(shù)來(lái)設(shè)置默認(rèn)值:


func (o *operation) UnmarshalJSON(b []byte) error {

    type xoperation operation

    xo := &xoperation{Width: 500, Height: 500}

    if err := json.Unmarshal(b, xo); err != nil {

        return err

    }

    *o = operation(*xo)

    return nil

}

我創(chuàng)建了一個(gè)Playground 示例,并修改了 JSON 以使其可運(yùn)行。


查看完整回答
反對(duì) 回復(fù) 2021-12-20
  • 1 回答
  • 0 關(guān)注
  • 368 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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