gin使用自定義結構繫結表單資料的示例程式碼
阿新 • • 發佈:2020-11-04
以下示例使用自定義結構
type StructA struct { FieldA string `form:"field_a"` } type StructB struct { NestedStruct StructA FieldB string `form:"field_b"` } type StructC struct { NestedStructPointer *StructA FieldC string `form:"field_c"` } type StructD struct { NestedAnonyStruct struct { FieldX string `form:"field_x"` } FieldD string `form:"field_d"` } func GetDataB(c *gin.Context) { var b StructB c.Bind(&b) c.JSON(200,gin.H{ "a": b.NestedStruct,"b": b.FieldB,}) } func GetDataC(c *gin.Context) { var b StructC c.Bind(&b) c.JSON(200,gin.H{ "a": b.NestedStructPointer,"c": b.FieldC,}) } func GetDataD(c *gin.Context) { var b StructD c.Bind(&b) c.JSON(200,gin.H{ "x": b.NestedAnonyStruct,"d": b.FieldD,}) } func main() { r := gin.Default() r.GET("/getb",GetDataB) r.GET("/getc",GetDataC) r.GET("/getd",GetDataD) r.Run() }
執行示例:
$ curl "http://localhost:8080/getb?field_a=hello&field_b=world" {"a":{"FieldA":"hello"},"b":"world"} $ curl "http://localhost:8080/getc?field_a=hello&field_c=world" {"a":{"FieldA":"hello"},"c":"world"} $ curl "http://localhost:8080/getd?field_x=hello&field_d=world" {"d":"world","x":{"FieldX":"hello"}}
注意:不支援以下樣式結構
type StructX struct { X struct {} `form:"name_x"` // HERE have form } type StructY struct { Y StructX `form:"name_y"` // HERE have form } type StructZ struct { Z *StructZ `form:"name_z"` // HERE have form }
總之,現在只支援現在沒有form
標籤的自定義結構
到此這篇關於gin使用自定義結構繫結表單資料的示例程式碼的文章就介紹到這了,更多相關gin繫結表單資料內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!