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

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

從 POST 請求解碼 JSON 在 Go 中失敗

從 POST 請求解碼 JSON 在 Go 中失敗

Go
牛魔王的故事 2021-12-20 17:09:37
我使用 JSON 數(shù)據(jù)向我的 Go 應(yīng)用程序發(fā)送一個 POST 請求,如下所示:var test = {text: "Lorem ipsum dolor sit amet"};$.ajax({  url: "/api/test/add",  type: "POST",  dataType: "json",  contentType: "application/json; charset=utf-8",  data: JSON.stringify(test),  success: function(data) {    // ...  },  error: function(xhr, status, err) {    // ...  }});在我的 Go 應(yīng)用程序中,我有以下代碼(使用ventigo):type Test struct {  id   int  text string}func apiAddTestHandler(w http.ResponseWriter, r *http.Request) {  r_body, err := ioutil.ReadAll(r.Body)  if err != nil {    panic(err)  }  // Here looks like everything is ok because I get  // {"text": "Lorem ipsum dolor sit amet"} if I try  // to convert r_body to string (string(r_body)).  var test Test  err = json.Unmarshal(r_body, &test)  if err != nil {    panic(err)  }  // Process test struct below, but here I get  // {id:0 text:} if I try to use or print the value  // of test (fmt.Printf("%+v\n", test)).}func main() {  router := vestigo.NewRouter()  router.Post("/api/test/add", apiAddTestHandler)  err := http.ListenAndServe(":3000", router)  if err != nil {    log.Fatal("ListenAndServe: ", err)  }}問題是,在 apiAddTestHandler() 中,我無法使用解碼的 JSON 數(shù)據(jù)“填充”測試結(jié)構(gòu)。評論中的更多信息。我也嘗試了下面的代碼片段,但沒有運氣:decoder := json.NewDecoder(r.Body)var test Testerr := decoder.Decode(&test)if err != nil {  panic(err)}問題是什么?
查看完整描述

1 回答

?
慕田峪4524236

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

從Unmarshal文檔(重點是我的):


要將 JSON 解組為結(jié)構(gòu),Unmarshal 將傳入的對象鍵與 Marshal 使用的鍵(結(jié)構(gòu)字段名稱或其標(biāo)簽)進(jìn)行匹配,更喜歡精確匹配,但也接受不區(qū)分大小寫的匹配。Unmarshal 只會設(shè)置 struct 的導(dǎo)出字段。


您需要更改結(jié)構(gòu)中的字段定義:


type Test struct {

  ID   int

  Text string

}

注意我使用ID而不是Id每個Golang 命名約定。


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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