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

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

無法在 go 中使用 base64 編碼的字節(jié)片解組 json

無法在 go 中使用 base64 編碼的字節(jié)片解組 json

Go
DIEA 2022-11-23 20:27:08
我很難解組從 AWS lambda 函數(shù)發(fā)送給我的結(jié)構(gòu)。pkidata無論我做什么,所有字段都是空的。我創(chuàng)建了這個代碼示例來隔離這個過程:package mainimport (    "encoding/base64"    "encoding/json"    "fmt")func main() {// yeah the string is long lol     var body ResponseBody    if err := json.Unmarshal([]byte(mystring), &body); err != nil {        fmt.Println(fmt.Errorf("failed unmarshaling response | %s", err.Error()))    }    fmt.Println(body.Error.ErrorMessage)    certChain, err := base64.StdEncoding.DecodeString(mystring)    if err != nil {        fmt.Println(err.Error())    }    fmt.Println(certChain)}type PkiGenerationInput struct {    TeacherUsername string `json:"teacherusername"`}type Response struct {    Headers ResponseHeaders `json:"headers"`    Body    ResponseBody    `json:"body"`}type ResponseHeaders struct {    ContentType string `json:"Content-Type"`}type ResponseBody struct {    PkiData ParsablePkiData `json:"pkidata"`    Error   struct {        ErrorMessage string `json:"errormessage"`        ErrorType    string `json:"errortype"`    } `json:"error"`}type ParsablePkiData struct {    Certificate      string `json:"certificate"`    PrivateKey       string `json:"privatekey"`    CertificateChain string `json:"certificatechain"`}這是輸出errormessagetestillegal base64 data at input byte 0[]事實上,我可以閱讀errormessagetest節(jié)目,解組有點管用,所以這很奇怪。我檢查了任何未導(dǎo)出的字段,但我們可以清楚地看到它們都是大寫的。我還“只是為了看看”減小了字符串大小,但它沒有改變?nèi)魏螙|西。
查看完整描述

1 回答

?
RISEBY

TA貢獻(xiàn)1856條經(jīng)驗 獲得超5個贊

綜合所有評論的答案:


首先,我的“愚蠢錯誤”是因為我試圖解碼錯誤的變量:


// mystring needs to be replaced by body.PkiData.Certificate

base64.StdEncoding.DecodeString(mystring) 

但研究讓我們發(fā)現(xiàn),json.Unmarshal()當(dāng)結(jié)果類型與聲明的類型匹配時,該函數(shù)會自行解碼 base64。鑒于編碼數(shù)據(jù)是 a ,我只是在結(jié)構(gòu)中用 a[]byte替換了string類型。[]byte


這允許創(chuàng)建以前代碼的更簡單版本:


type ResponseBody struct {

    PkiData PkiData `json:"pkidata"`

}


type PkiData struct {

    Certificate      []byte

    PrivateKey       []byte

    CertificateChain []byte

}


var body ResponseBody

if err := json.Unmarshal(rawResp.Payload, &body); err != nil {

    return PkiData{}, fmt.Errorf("failed unmarshaling response | %s", err.Error())

}


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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