HTML表单数据转JSON


问题描述

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

1 @PostMapping(value = "/test", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
2@ResponseBody
3 public Map test(@RequestBody Map 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'));

userName:
password: