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

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

golang json.Unmarshal 到 struct []byte

golang json.Unmarshal 到 struct []byte

Go
烙印99 2022-06-13 10:16:03
type TTT struct {    Info []byte    Version int32}func main(){    info:=`{"info":"0x97e302078c11ca8e7d75e2eedd1091eafec353864212085406d8d7dca0e3fa4a","version":20}`    test:=TTT{}    err:=json.Unmarshal([]byte(info),&test)    if err != nil {        fmt.Println("Error in JSON unmarshalling from json marshalled object:", err)        return    }    fmt.Println((test))}錯(cuò)誤:從 json 編組對(duì)象中解組 JSON 時(shí)出錯(cuò):輸入字節(jié) 64 處的 base64 數(shù)據(jù)非法
查看完整描述

2 回答

?
胡子哥哥

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

您可能需要對(duì)十六進(jìn)制數(shù)據(jù)進(jìn)行編碼:


package main


import (

        "encoding/base64"

        "encoding/json"

        "fmt"

)


type TTT struct {

        Info    []byte

        Version int32

}


func main() {

        b64Content := base64.StdEncoding.EncodeToString([]byte("0x97e302078c11ca8e7d75e2eedd1091eafec353864212085406d8d7dca0e3fa4a"))

        info := fmt.Sprintf(`{"info":"%s","version":20}`, b64Content)

        test := TTT{}

        err := json.Unmarshal([]byte(info), &test)

        if err != nil {

                fmt.Println("Error in JSON unmarshalling from json marshalled object:", err)

                return

        }

        fmt.Printf("%s", test.Info)

}


查看完整回答
反對(duì) 回復(fù) 2022-06-13
?
繁星淼淼

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

默認(rèn)的 json 解析器將從 base64 字符串解析 []byte。


如果您的源字符串不是 base64,那么您需要定義自己的封送拆收器。


type TTT struct {

    Info    bytes

    Version int32

}


type bytes []byte


func (b *bytes) MarshalJSON() ([]byte, error) {

    str := string(input)

    bs, err :=hex.DecodeString(str[3:len(str)-1])

    if err!=nil{

        return err

    }

    *b = bs

    return nil

}


func (b *bytes) UnmarshalJSON(input []byte) error {

    *b = bytes(input)

    return nil

}


func main() {

    info := `{"info":"0x97e302078c11ca8e7d75e2eedd1091eafec353864212085406d8d7dca0e3fa4a","version":20}`

    test := TTT{}

    err := json.Unmarshal([]byte(info), &test)

    if err != nil {

        fmt.Println("Error in JSON unmarshalling from json marshalled object:", err)

        return

    }

    fmt.Println((test))

}


查看完整回答
反對(duì) 回復(fù) 2022-06-13
  • 2 回答
  • 0 關(guān)注
  • 313 瀏覽
慕課專欄
更多

添加回答

舉報(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)