表单序列化serialize()和serializeArray()的区别以及后台接收

表单序列化serialize()和serializeArray()的区别以及后台接收

function add() {
        var data = $("#systemForm").serialize();
        $.ajax({
            async: true,
            cache: false,
            type: 'POST',
            url: 'DwyhxxController.do?update',
            data: data,
            success:function (data) {
                data = JSON.parse(data);
                if (false == data.success) {
                    W.$.dialog.alert(data.msg);
                }else {
                    W.$.dialog.alert(data.msg);
                }
            },
            error:function (data) {
                W.$.dialog("修改失败");
            }
        });
    }
    

这是serialize()序列化后的数据

"D_UUID=40288047&D_URL=FoperationEffectAnalysis&D_NO=1&SYS_NAME=JXBB"

可以看到是返回字符串并且用&连接,后台可以直接用RequestBody Bean bean 接收,或者单个参数接收,注意一定要是一一对应

        var formArray =$("#systemForm").serializeArray();
        var formObject = {};
        $.each(formArray,function(i,item){
            formObject[item.name] = item.value;
        });
        $.ajax({
            async: true,
            cache: false,
            type: 'POST',
            url: 'DwyhxxController.do?update',
            contentType: "application/json",
            data: JSON.stringify(formObject),
            success:function (data) {
                data = JSON.parse(data);
                if (false == data.success) {
                    W.$.dialog.alert(data.msg);
                }else {
                    W.$.dialog.alert(data.msg);
                }
            },
            error:function (data) {
                W.$.dialog("修改失败");
            }
        });

serializeArray()序列化后的数据
在这里插入图片描述
可以看到serializeArray()将数据转化成了对象的格式,要想传入后台还需要处理一下

        var formObject = {};
        $.each(formArray,function(i,item){
            formObject[item.name] = item.value;
        });

处理后的数据
在这里插入图片描述
就变成了很标准的键值对形式,然后使用JSON.stringfy()转换成json就可以传入后台了。后台可以直接使用对象@RequestBody Bean bean 接收,或者使用Map@RequestBody Map map接收

注意事项:serialize()序列化后的数据是字符串数据,提交是不要用json提交
serializeArray()需要将数据转成json后再提交到后台

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值