HTML表单数据转JSON

2019-03-13 23:32:01来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

问题描述

  后端使用如下方式接收前端传入参数:

1 @PostMapping(value = "/test", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
2@ResponseBody
3 public Map<String, Object> test(@RequestBody Map<String, Object> map) {
4     System.out.println(map);
5     return map;
6 }

  由于使用了 @RequestBody 注解,所以,前端需要传递 JSON 数据。那么,如何将表单数据快速转换为 JSON 字符串呢?

定义如下通用方法:

 1 function serializeForm(form){
 2     var obj = {};
 3     $.each(form.serializeArray(),function(index){
 4         if(obj[this['name']]){
 5             obj[this['name']] = obj[this['name']] + ','+this['value'];
 6         } else {
 7             obj[this['name']] =this['value'];
 8         }
 9     });
10     return obj;
11 }

  以上方法会返回一个 Object,然后再通过 JSON.stringify(obj) 将 JSON 对象转换为 JSON 字符串即可。

  调用 serializeForm() 方法只需要传入 表单对象即可,如: serializeForm($('form'));

<form action="" method="POST" id="myForm">
        userName: <input type="text" name="userName" /><br /> password: <input type="password" name="password" /><br />
        <input type="button" value="Submit" id="btn" />
    </form>

    <script>
        $(function() {
            $('#btn').click(function () {

                var jsonObj = serializeForm($("form"));

                var jsonStr = JSON.stringify(jsonObj);

                $.ajax({
                    type: 'POST',
                    url: 'http://localhost:8083/test',
                    data: jsonStr,
                    headers: {
                        'Content-Type': 'application/json;charset=UTF-8'
                    },
                    success: function (data) {
                        alert("success: " + data);
                    },
                    error: function (data) {
                        alert("error: " + data);
                    }
                });

                return false;
            });
        });

        function serializeForm(form){
            var obj = {};
            $.each(form.serializeArray(),function(index){
                if(obj[this['name']]){
                    obj[this['name']] = obj[this['name']] + ','+this['value'];
                } else {
                    obj[this['name']] =this['value'];
                }
            });
            return obj;
        }
    </script>

 


原文链接:https://www.cnblogs.com/dream-saddle/p/10518110.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:AES加密

下一篇:在 Linux 上使用 tarball