完整攻略如下:
- 首先,需要在Springmvc中配置一个
MappingJackson2HttpMessageConverter
对象,用于处理json数据的转换。在Springmvc的配置文件中添加如下配置:
xml
<mvc:annotation-driven>
<mvc:message-converters>
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"/>
</mvc:message-converters>
</mvc:annotation-driven>
- 接下来,我们需要在Controller中使用
@RequestBody
注解将接收到的json数据转换成Java对象。具体代码如下:
java
@ResponseBody
@RequestMapping(value = "/user", method = RequestMethod.POST)
public String setUser(@RequestBody User user) {
// 处理业务逻辑
}
上述代码中,@RequestBody
注解可以将接收到的json数据转换成对应的Java对象,然后可以对该对象进行相应的操作,比如进行业务逻辑处理。
- 在前端发送json数据时,需要设置发送格式为
application/json
。具体代码如下:
javascript
$.ajax({
type: "POST",
url: "/user",
contentType: "application/json",
data: JSON.stringify({"name": "张三", "age": "20"}),
success: function(data) {
// 处理响应数据
},
error: function() {
// 处理错误情况
}
});
上述代码中,contentType
属性设置为application/json
,表示发送的数据是json格式的。data
属性使用JSON.stringify
方法将json对象转换成json字符串,然后发送给后端。
示例1:接收一个简单的json数据
假设我们需要将一个用户的姓名和年龄信息通过json格式发送给后端,后端再对该用户信息进行保存操作。前端代码可以如下:
$.ajax({
type: "POST",
url: "/user",
contentType: "application/json",
data: JSON.stringify({"name": "张三", "age": "20"}),
success: function(data) {
// 处理响应数据
},
error: function() {
// 处理错误情况
}
});
后端代码可以如下:
@ResponseBody
@RequestMapping(value = "/user", method = RequestMethod.POST)
public String setUser(@RequestBody User user) {
// 保存用户信息到数据库中
return "success";
}
public class User {
private String name;
private String age;
// 省略getter和setter方法
}
这里我们使用了@RequestBody
注解将接收到的json数据转换成User
对象,然后可以对该对象进行相应的操作,比如进行数据保存操作。
示例2:接收一个复杂的json数据
假设我们需要将一个包含多个学生信息的数组通过json格式发送给后端,后端再对每个学生信息进行保存操作。前端代码可以如下:
$.ajax({
type: "POST",
url: "/student",
contentType: "application/json",
data: JSON.stringify([
{"name": "张三", "age": "20", "gender": "男"},
{"name": "李四", "age": "21", "gender": "女"},
{"name": "王五", "age": "22", "gender": "男"}
]),
success: function(data) {
// 处理响应数据
},
error: function() {
// 处理错误情况
}
});
后端代码可以如下:
@ResponseBody
@RequestMapping(value = "/student", method = RequestMethod.POST)
public String saveStudent(@RequestBody List<Student> students) {
// 保存学生信息到数据库中
return "success";
}
public class Student {
private String name;
private String age;
private String gender;
// 省略getter和setter方法
}
这里我们使用了@RequestBody
注解将接收到的json数据转换成一个包含多个学生信息的List
对象,然后可以对每个学生信息进行相应的操作,比如进行数据保存操作。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Springmvc发送json数据转Java对象接收 - Python技术站