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

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

是否可以綁定到自定義結(jié)構(gòu)類型的地圖對(duì)象?

是否可以綁定到自定義結(jié)構(gòu)類型的地圖對(duì)象?

Go
慕俠2389804 2023-05-08 18:08:51
我的問題是,如何在地圖對(duì)象(變量)中綁定(自動(dòng)綁定?)自定義結(jié)構(gòu)類型?這是我的自定義結(jié)構(gòu)類型type Tetris struct {    ... ...    NowBlock           map[string]int     `form:"nowBlock" json:"nowBlock"`    ... ...}這是我的ajax代碼 $.ajax({     type : "POST"     , url : "/game/tetris/api/control"     , data : {                "keyCode" : keyCode                , "ctxWidth" : ctxWidth                , "ctxHeight" : ctxHeight                , "nowBlock" : {"O":0}     } // also, i did JSON.stringify, but did not binding..     , dataType : "json"     , contentType : "application/json"     }).done(function(data){           ... ... });然后,不要綁定“NowBlock”tetris := new(Tetris)if err := c.Bind(tetris); err != nil {    c.Logger().Error(err)}fmt.Println(tetris.NowBlock)打印結(jié)果是,'map[]' //nil...這是我的完整問題鏈接(GOLANG > How to bind ajax json data to custom struct type?)請(qǐng)幫我。附言。謝謝你回答我。我確實(shí)喜歡這個(gè)答案。但是,它也不起作用。第一的,- No 'contentType : "application/json"'- don't use JSON.stringify then, in go side, - fmt.println(tetris.KeyCode) // OK- fmt.println(tetris.NowBlock) // NOT OK.. 'map[]'第二,- Use 'contentType : "application/json"'- Use JSON.stringifythen, in go side, - fmt.println(tetris.KeyCode) // NOT OK.. '' (nil)- fmt.println(tetris.NowBlock) // NOT OK.. 'map[]'第三,i remove the custom struct type Tetris NowBlock object's `form:nowBlock` literal, but is does not working too...為什么不在地圖對(duì)象中綁定自定義結(jié)構(gòu)類型?
查看完整描述

2 回答

?
莫回?zé)o

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

你的go代碼沒有問題。為什么 echo.Bind()無法檢索從 AJAX 發(fā)送的有效負(fù)載是因?yàn)橛行ж?fù)載不是 JSON 格式。


就$.ajax你需要把JSON.stringify()數(shù)據(jù)轉(zhuǎn)化成JSON字符串格式。


JSON.stringify({

    "keyCode" : keyCode

    , "ctxWidth" : ctxWidth

    , "ctxHeight" : ctxHeight

    , "nowBlock" : {"O":0}

})

設(shè)置contentType為application/json不會(huì)自動(dòng)將有效負(fù)載轉(zhuǎn)換為 JSON 字符串。這就是為什么JSON.stringy()仍然需要。


完整的變化:


var payload = JSON.stringify({

    "keyCode": keyCode,

    "ctxWidth": ctxWidth,

    "ctxHeight": ctxHeight,

    "nowBlock": {

        "O": 0

    }

})


$.ajax({

    type: "POST",

    url: "/game/tetris/api/control",

    data: payload,

    dataType: "json",

    contentType: "application/json"

}).done(function(data) {

    ......

});


查看完整回答
反對(duì) 回復(fù) 2023-05-08
?
忽然笑

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

也許你應(yīng)該刪除結(jié)構(gòu)標(biāo)簽'form',當(dāng)你使用'application/json'發(fā)送數(shù)據(jù)時(shí),'form'標(biāo)簽未被使用。
當(dāng)我只添加“json”標(biāo)簽時(shí)程序運(yùn)行良好,如果我添加“form”標(biāo)簽,echo 使用“form”并得到一個(gè)錯(cuò)誤。

希望這可以幫到你。


查看完整回答
反對(duì) 回復(fù) 2023-05-08
  • 2 回答
  • 0 關(guān)注
  • 138 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號(hào)

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