gin使用自定义结构绑定表单数据
gin使用自定义结构绑定表单数据
以下示例使用自定义结构
type StructA struct {FieldA string `form:"field_a"`
}type StructB struct {NestedStruct StructAFieldB string `form:"field_b"`
}type StructC struct {NestedStructPointer *StructAFieldC 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 StructBc.Bind(&b)c.JSON(200, gin.H{"a": b.NestedStruct,"b": b.FieldB,})
}func GetDataC(c *gin.Context) {var b StructCc.Bind(&b)c.JSON(200, gin.H{"a": b.NestedStructPointer,"c": b.FieldC,})
}func GetDataD(c *gin.Context) {var b StructDc.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使用自定义结构绑定表单数据相关推荐
- @InitBinder注解绑定表单数据
在SpringMVC框架的项目中,bean中定义了Date,double等类型,如果没有做任何处理的话,日期以及double都无法绑定. 比如经常会遇到页面表单中某些数据类型是Date.In ...
- Gin 框架学习笔记(01)— 自定义结构体绑定表单、绑定URI、自定义log、自定义中间件、路由组、解析查询字符串、上传文件、使用HTTP方法
要实现一个 API 服务器,首先要考虑两个方面:API 风格和媒体类型.Go 语言中常用的 API 风格是 RPC 和 REST,常用的媒体类型是 JSON.XML 和 Protobuf.在 Go A ...
- vue+ele 实现v-for动态数据循环表单,然后对每个结构进行表单校验的方法
vue+ele 实现v-for动态数据循环表单,然后对每个结构进行表单校验的方法 项目开发时遇到form结构是动态遍历出来的,但是每个遍历出来的表单都需要做相对应的检验处理,ele提供的办法只能对单个 ...
- ElementUI dialog弹框 退出时重置表单数据
需求 进行项目开发,用到了ElementUI的dialog弹出框,当再次点击弹出框时发现,原本数据的还存在 解决 查阅了ElementUI的文档,发现一个好东西 就是这个方法,解决了问题,分享一下用法 ...
- Spring MVC中基于自定义Editor的表单数据处理技巧
本文出处:http://blog.csdn.net/chaijunkun/article/details/8642642,转载请注明.由于本人不定期会整理相关博文,会对相应内容作出完善.因此强烈建议在 ...
- jQuery 序列化表单数据 serialize() serializeArray()
1.serialize()方法 格式:var data = $("form").serialize(); 功能:将表单内容序列化成一个字符串. 这样在ajax提交表单数据时,就不用 ...
- Servlet 表单数据
很多情况下,需要传递一些信息,从浏览器到 Web 服务器,最终到后台程序.浏览器使用两种方法可将这些信息传递到 Web 服务器,分别为 GET 方法和 POST 方法. GET 方法 GET 方法向页 ...
- elementUI清空弹框中的表单数据
点击此处直达应用场景示例 官网:https://element.eleme.cn/#/zh-CN/component/form 补充:改变表头颜色: <el-table :data=" ...
- MVC教程第四篇:传递表单数据
MVC教程第四篇:传递表单数据 摘要 本文将完成我们"MVC公告发布系统"的公告发布功能,以此展示在ASP.NET MVC中如何传递处理表单的数据. 前言 通过前几篇文章, ...
最新文章
- trie树上值域化建主席树 查询异或平移最小值 ---- P3293 [SCOI2016]美味
- 使用EXE4J将JAR包转换为EXE文件
- Exchange2007中创建收件人对象、通讯组和地址列表和客户端访问
- 自制操作系统(十) 图像叠加处理
- 映射文件_Hibernate 映射文件
- oracle rownum 特别慢,select * from table where rownum=1怎么会特别慢??表的数据在千万左右...
- js调用本地js文件(亲测)
- 怎么取消百度右侧栏的搜索热点
- 快速突破面试算法之搜索算法篇
- 微分方程数值计算matlab实现,微分方程数值解及Matlab实现
- Spark的宽窄依赖
- android TVBOX OTT IPTV
- 使用Matlab/Simulink进行电力电子控制设计
- 《第31天:JQuery - 轮播图》
- 第28届深圳国际礼品展圆满闭幕,五洲御瓷再续“新里程”
- 【转载】使用JQDATA获取数据并本地化(Mysql储存)
- java.nio包网络编程_Java NIO网络编程
- 大学生服务外包大赛之超新星教考分离系统学习路线以及参考资源
- 无线蓝牙耳机排行榜是什么?TWS真无线蓝牙耳机排行
- 新版iTunes Connect中重新上传app
热门文章
- 【Android RTMP】x264 编码器初始化及设置 ( 获取 x264 编码参数 | 编码规格 | 码率 | 帧率 | B帧个数 | 关键帧间隔 | 关键帧解码数据 SPS PPS )
- 【UML 建模】UML建模语言入门-视图,事物,关系,通用机制
- WebUploader 上传图片回显
- Revit二次开发--Hello World
- 《HTTP权威指南》– 5.Web服务器
- Android LayoutInflater详解(转)
- javascript之值传递与引用传递
- SQL语句判断数据库、表、字段是否存在
- ETL工具调度之中美PK
- sort用法(默认按升序排列)