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

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

如何在 Go 中將數(shù)組的數(shù)組解析為結(jié)構(gòu)?

如何在 Go 中將數(shù)組的數(shù)組解析為結(jié)構(gòu)?

Go
寶慕林4294392 2022-12-19 21:06:24
[[1501545600000,"a","b","c","d","pass this","e",1651363200000],[1504224000000,"a","b","c","d","pass this","e",1654041600000],...]我有一堆這樣的數(shù)組。它來自外部 API。我想將它映射到一個結(jié)構(gòu)。而且我不需要“傳遞這個”字段。我怎樣才能做到這一點?這也是我的結(jié)構(gòu)type Address struct {    RegistrationDate string `json:"registrationDate"`    Name             string `json:"name"`    Address          string `json:"address"`    City             string `json:"city"`    State            string `json:"state"`    Zip              string `json:"zip"`    ExpirationDate   string `json:"expirationDate"`}謝謝你。
查看完整描述

1 回答

?
HUWWW

TA貢獻1874條經(jīng)驗 獲得超12個贊

您可以Address實現(xiàn)json.Unmarshaler接口。

type Address struct {

    RegistrationDate int64  `json:"registrationDate"`

    Name             string `json:"name"`

    Address          string `json:"address"`

    City             string `json:"city"`

    State            string `json:"state"`

    Zip              string `json:"zip"`

    ExpirationDate   int64  `json:"expirationDate"`

}


func (a *Address) UnmarshalJSON(data []byte) error {

    var discard string

    return json.Unmarshal(data, &[]any{

        &a.RegistrationDate,

        &a.Name,

        &a.Address,

        &a.City,

        &a.State,

        &discard,

        &a.Zip,

        &a.ExpirationDate,

    })

}

https://go.dev/play/p/eSaXEQ-onOC


如果您需要日期字段保留字符串,您可以使用“轉(zhuǎn)換器”類型來解組 JSON 數(shù)字,然后將結(jié)果轉(zhuǎn)換int為string.


type Int64String string


func (s *Int64String) UnmarshalJSON(data []byte) error {

    var i64 int64

    if err := json.Unmarshal(data, &i64); err != nil {

        return err

    }


    *s = Int64String(strconv.FormatInt(i64, 10))

    return nil

}

type Address struct {

    RegistrationDate string `json:"registrationDate"`

    Name             string `json:"name"`

    Address          string `json:"address"`

    City             string `json:"city"`

    State            string `json:"state"`

    Zip              string `json:"zip"`

    ExpirationDate   string `json:"expirationDate"`

}


func (a *Address) UnmarshalJSON(data []byte) error {

    var discard string

    return json.Unmarshal(data, &[]any{

        (*Int64String)(&a.RegistrationDate),

        &a.Name,

        &a.Address,

        &a.City,

        &a.State,

        &discard,

        &a.Zip,

        (*Int64String)(&a.ExpirationDate),

    })

}

https://go.dev/play/p/Z3TBL82g_lY


查看完整回答
反對 回復(fù) 2022-12-19
  • 1 回答
  • 0 關(guān)注
  • 125 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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