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

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

Golang 在將“{}”主體解碼為結(jié)構(gòu)時(shí)不會(huì)產(chǎn)生錯(cuò)誤

Golang 在將“{}”主體解碼為結(jié)構(gòu)時(shí)不會(huì)產(chǎn)生錯(cuò)誤

Go
森林海 2023-04-04 14:40:07
在 rest api 中,當(dāng) body 設(shè)置為“{}”時(shí),json Decoder 不會(huì)產(chǎn)生錯(cuò)誤。這使得有必要檢查目標(biāo)結(jié)構(gòu)是否仍然是nil.我需要檢查庫(kù)是否應(yīng)該像這樣工作,或者這是否是它的問(wèn)題。// Client Side this requestreq, err := http.NewRequest("POST", "url", strings.NewReader("{}") )// Curl equivalent: curl -X POST -d '{}' http://api:8080/r/primitives/multiply// Server sidetype Operands struct {    Values []float64 `json:"Values"`}func handler(req *http.Request, res *http.Response) (string, error) {    operands := Operands{}    err := json.NewDecoder(req.Body).Decode(&operands)    if err != nil {        res.StatusCode = 400        res.Status = http.StatusText(res.StatusCode)        http.StatusText(res.StatusCode)        return "", err    }     operands.Values[0] // It will fail here.}編輯 1:解碼器在生成錯(cuò)誤的情況下可以正常處理空主體“”,并且可以正常處理像這樣的正確主體:編輯 2:這里的{"Values" : [ 5.0 , 2.0 ]} 問(wèn)題是對(duì)于“{}”主體,它不會(huì)返回解碼時(shí)出錯(cuò),而是將目標(biāo)結(jié)構(gòu)保持為 nil。
查看完整描述

1 回答

?
慕雪6442864

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

{}只是一個(gè)空的 Json 對(duì)象,它可以很好地解碼您的Operands結(jié)構(gòu),因?yàn)榻Y(jié)構(gòu)不需要在Operands數(shù)組中包含任何內(nèi)容。

您需要自己驗(yàn)證,例如

err := json.NewDecoder(req.Body).Decode(&operands)
if err != nil || len(operands.Values) == 0{


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

添加回答

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