0%

SpringMVC-Json处理

概述

当前端使用 Ajax 发送请求时,服务器要以 JSON 的数据格式响应给浏览器

使用方式

@ResponseBody来实现;注解方式

@ResponseBody

1.添加 json 处理相关 jar 包

2.在配置文件当中写上 <mvc:annotation-driven/>

3.设置映射方法的返回值为 @ResponseBody

方式1-直接返回一个对象

方式2-返回一个List集合

方式3-返回一个Map集合

表单序列化

序列化方式

1
2
3
4
5
6
7
8
<form id="myform">
user:<input type="text" name="username"><br>
age:<input type="text" name="age" ><br>
爱好:<input type="checkbox" name="hobby" value="篮球"> 篮球
<input type="checkbox" name="hobby" value="乒乓球"> 乒乓球
<input type="checkbox" name="hobby" value="足球"> 足球
</form>
<input type="button" id="formbtn" value="发送form">

序列化转Json

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
(function($){
$.fn.serializeJson=function(){
var serializeObj={};
var array=this.serializeArray();
var str=this.serialize();
$(array).each(function(){
if(serializeObj[this.name]){
if($.isArray(serializeObj[this.name])){
serializeObj[this.name].push(this.value);
}else{
serializeObj[this.name]=[serializeObj[this.name],this.value];
}
}else{
serializeObj[this.name]=this.value;
}
});
return serializeObj;
};
})(jQuery);

@RequestBody

作用

默认情况下我们发送的都是 Content-Type 不是 application/x-www-form-urlencoded,直接使用 @RequestParam 接收参数,如果不是 Content-Type 不是 application/x-www-form-urlencoded 编码的内容,例如 application/json, application/xml 等;使用 @RequestBody 接收

使用

发送Json参数

1
2
3
4
5
6
7
8
9
10
$.ajax({
type:"post",
url:"${pageContext.request.contextPath}/formJson",
data:JSON.stringify(serialize2),
dataType:'json',
contentType:'application/json',
success:function (data) {
alert(data.responseText)
}
});

发送二进制流


↓赏一个鸡腿... 要不,半个也行↓