spring mvc 使用@RequstBody封装含map的数据
1.将数据封装成一个实体类
2.在请求方法中使用@RequstBody注解
3.导入3个用于解析的jar包
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.9.0</version>
4.前端页面需要添加头信息(并且需要封装成map那么就需要将key设置成实体类中的属性名,value用对象封装)
$.ajax({
// 编写json格式,设置属性和值
url:"http://localhost:8080/__06_zsjBOOT/user/test",
contentType:"application/json;charset=UTF-8",
data:'{"name":"hehe","map":{"key":"zsj"}}',
dataType:"JSON",
type: "POST",
headers: {
//需要添加头信息
Accept: "application/json",
},
success:function(data){
// data服务器端响应的json的数据,进行解析
alert(data.name);
alert(data.age);
}
});
总结
1.application/json;charset=UTF-8
此格式为axios的post的默认格式,后端需要使用@RequstBody注解接收.
2.application/x-www-form-urlencoded
此格式为form表单格式,qs库的序列化函数也是发送此格式,此格式后端只需要使用实体类接收,无需使用@RequstBody注解