0
type foos struct { Foo string `json:"foo" binding:"required"`}
以下の構造体を持っていると私は、このJSONに投稿するとき、私は次のエンドポイント
func sendFoo(c *gin.Context) {
var json *foos
if err := c.BindJSON(&json); err != nil {
c.AbortWithStatus(400)
return
}
// Do something about json
}
を持って
{"bar":"bar bar"}
errが常にありますなし。私はバインディングを書く必要があり、それは動作しません。しかし、以下のようにエンドポイントを変更すると、
func sendFoo(c *gin.Context) {
var json foos //remove pointer
if err := c.BindJSON(&json); err != nil {
c.AbortWithStatus(400)
return
}
// Do something about json
}
バインディングが動作していて、エラーはゼロではありません。どうして?それはbinding.goに記載されて
最初のケースで 'c.BindJSON(json)'を実行するとどうなりますか? – zerkms
できません。アンマーシャリングエラーが発生します –
詳細を教えてください。 2番目のケースでそうしないと、ポインタが "unmarshall error"をどのように通すのでしょうか? 'var json * foos =&foos {}'や 'json:=&foos {}'というポインタを初期化して 'json'を単に渡すとどうなりますか? – zerkms