form表单提交json格式数据
来源:互联网 发布:淘宝购物用例图 编辑:程序博客网 时间:2024/05/22 04:58
参考自 jQuery实现ajax提交form表单(可以是提交json),用springmvc接收。图文详解
个人实践整理。
方式一:
发送数据
<script type="application/javascript"> //发送表单ajax请求 $(':submit').on('click',function(){ $.ajax({ url:"buy", type:"POST", data:JSON.stringify($('form').serializeObject()), contentType:"application/json", //缺失会出现URL编码,无法转成json对象 success:function(){ alert("成功"); } }); }); /** * 自动将form表单封装成json对象 */ $.fn.serializeObject = function() { var o = {}; var a = this.serializeArray(); $.each(a, function() { if (o[this.name]) { if (!o[this.name].push) { o[this.name] = [ o[this.name] ]; } o[this.name].push(this.value || ''); } else { o[this.name] = this.value || ''; } }); return o; };</script>
contentType:”application/json”不能缺失,缺失数据会成为URL编码,造成无法转成json对象,后台接收的内容如下
String: %7B%22huohao%22%3A%22234%22%2C%22changjia%22%3A%221234%22%2C%22yanse%22%3A%22%22%2C%22xiangshu%22%3A%22%22%2C%22shuangshu%22%3A%22%22%2C%22jinjia%22%3A%22%22%2C%22riqi%22%3A%22%22%2C%22shoujia%22%3A%22%22%2C%22beizhu%22%3A%22asdf%22%7D=
controller接收
@RequestMapping(value = "/buy")public void addBuy(@RequestBody String buyAdd){ System.out.println("String: "+buyAdd); BuyAdd add = JSON.parseObject(buyAdd, BuyAdd.class); //此处用的FastJson转换为对象 System.out.println("**************"); System.out.println("Object: "+add); System.out.println("==============================");}
接收显示为
String: {"huohao":"111","changjia":"222","yanse":"33","xiangshu":"","shuangshu":"","jinjia":"","riqi":"","shoujia":"","beizhu":"aaa"}**************Object: BuyAdd{huohao='111', changjia='222', yanse='33', xiangshu='', shuangshu='', jinjia='', riqi='', shoujia='', beizhu='aaa'}==============================
这种方式需要后台接收json字符串后自行转为对象
此处记录一种特殊需求,表单传递的为多个相同对象
用上述方式是这种结果
String: {"huohao":["5678","4567"],"changjia":["978","9678"],"yanse":"","xiangshu":"","shuangshu":"","jinjia":"","riqi":"","shoujia":"","beizhu":""}
两个对象合并为一个json发送过去,后台解析会很麻烦
这里我将form表单封装成json对象的方法进行了更改,使其最后为json对象的集合,后台可以直接读取集合进行解析
/** * 自动将form表单封装成json对象 */$.fn.serializeObject = function() { var list = []; var o = {}; var a = this.serializeArray(); $.each(a, function() { if (!o[this.name] && o[this.name]!='') { o[this.name] = this.value || ''; } else { list.push(o); o={}; o[this.name] = this.value || ''; } }); list.push(o); return list;};
controller
@RequestMapping(value = "/buy") public void addBuy(@RequestBody String requestAddBuy){ System.out.println("String: "+ requestAddBuy); List<RequestAddBuy> addBuy = JSON.parseArray(requestAddBuy, RequestAddBuy.class); System.out.println(addBuy); }
最后的结果
String: [{"huohao":"54674","changjia":"78i","yanse":"","xiangshu":"","shuangshu":"","jinjia":"","riqi":"","shoujia":"","beizhu":""},{"huohao":"457","changjia":"","yanse":"","xiangshu":"457","shuangshu":"","jinjia":"","riqi":"","shoujia":"","beizhu":"678ur7t"}][RequestAddBuy{huohao='54674', changjia='78i', yanse='', xiangshu='', shuangshu='', jinjia='', riqi='', shoujia='', beizhu=''}, RequestAddBuy{huohao='457', changjia='', yanse='', xiangshu='457', shuangshu='', jinjia='', riqi='', shoujia='', beizhu='678ur7t'}]
方式二:
发送数据
<script type="application/javascript"> //发送表单ajax请求 $(':submit').on('click',function(){ $.ajax({ url:"buy", type:"POST", data:$('form').serializeArray(), contentType:"application/x-www-form-urlencoded", success:function(){ alert("成功"); } }); });</script>
使用jQuery自带方法$.serializeArray()转换
然后使用contentType:”application/x-www-form-urlencoded”格式
controller接收
@RequestMapping(value = "/buy") public void addBuy(BuyAdd buyAdd){ System.out.println(buyAdd); }
接收显示
BuyAdd{huohao='245', changjia='wef', yanse='', xiangshu='', shuangshu='', jinjia='', riqi='', shoujia='', beizhu='2345'}
这种方式可以直接接收对象,不如直接使用form自动提交省事(方式三)
方式三:
数据传输
<form action="buy" method="post">
controller接收
@RequestMapping(value = "/buy") public void addBuy(BuyAdd buyAdd){ System.out.println(buyAdd); }
接收显示
BuyAdd{huohao='245', changjia='wef', yanse='', xiangshu='', shuangshu='', jinjia='', riqi='', shoujia='', beizhu='2345'}
阅读全文
0 0
- form表单提交json格式数据
- JSON编码格式提交表单数据
- JSON编码格式提交表单数据详解
- JSON编码格式提交表单数据详解
- JSON编码格式提交表单数据详解
- JSON编码格式提交表单数据详解
- JSON编码格式提交表单数据详解
- JSON编码格式提交表单数据详解
- JSON编码格式提交表单数据详解
- JSON编码格式提交表单数据详解
- JSON编码格式提交表单数据详解
- JSON编码格式提交表单数据详解
- JSON编码格式提交表单数据详解
- form 表单提交数据
- Json格式化form表单里面需要提交的数据
- ajax提交form表单数据serialize转为JSON
- form表单提交返回数据
- ajax提交form表单数据
- 如何设置winscp显示隐藏文件
- C#中委托、事件和回调函数区别与联系
- (Dynamic HTML)--3.使用checkBox模仿购买商品(以及对商品的增删改)
- 专访iDST华先胜:城市大脑,对城市的全量、实时认知和搜索
- Java 常见异常
- form表单提交json格式数据
- 【美团】丢失的三个数
- Java并发同步之CountDownLatch、CyclicBarrier和Semaphore
- Python 基础-捕获异常
- mysql基本操作
- 文件夹正在使用,如何快速找到关联进程
- 09:密码翻译( 1.7编程基础之字符串)
- Import of META-INF/cxf/cxf-extension-soap.xml has been deprecated and is unnecessary
- POS--权益证明机制