HTML表单数据转JSON
问题描述
后端使用如下方式接收前端传入参数:
1 @PostMapping(value = "/test", produces = MediaType.APPLICATION_JSON_UTF8_VALUE) 2@ResponseBody 3 public Maptest(@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'));