json
springmvc 默认使用jackson作为json类库,不需要修改applicationContext-servlet.xml任何配置,只需引入以下类库springmvc就可以处理json数据:
java
<!--spring-json依赖-->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
在java当
-
@RequestBody:作用是接收前端ajax传递给后端的json字符串,并将json格式的数据转为java对象
-
@ResponseBody:作用是将java对象转为json格式的数据传递给前台ajax
在javad
对象是 name = 王二, age = 15
在xml 中 <name > 王二</name> <age>15<age>
json 识别的对象是{ name= 王二,age =15}
如何接受json传输的数据或者如何json发送数据
接受json传递的参数
首先需要有实体类接收参数使用 @RestController接受参数
java
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
// 1. 定义与JSON结构匹配的实体类(和之前的User类一致)
class User {
private String name;
private Integer age;
// 必须有:无参构造、getter/setter
public User() {}
// getter/setter 省略,需手动补充
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public Integer getAge() { return age; }
public void setAge(Integer age) { this.age = age; }
}
// 2. 编写接口接收JSON参数
@RestController
public class UserController {
/**
* 接收JSON参数:{"name":"王二","age":15}
* @RequestBody 注解:将请求体的JSON字符串解析为User对象
*/
@PostMapping("/user")
public String receiveJson(@RequestBody User user) {
// 直接使用解析后的对象属性
String result = "接收的参数:name=" + user.getName() + ", age=" + user.getAge();
return result;
}
}
同类传递json的参数
java
import org.springframework.web.client.RestTemplate;
import com.fasterxml.jackson.databind.ObjectMapper;
public class JsonSender {
public static void main(String[] args) {
// 1. 初始化要传递的对象
User user = new User("王二", 15);
// 2. 创建RestTemplate(Spring环境可直接注入)
RestTemplate restTemplate = new RestTemplate();
// 3. 发送POST请求,自动将对象转为JSON
String url = "http://localhost:8080/user"; // 目标接口地址
String response = restTemplate.postForObject(url, user, String.class);
System.out.println("调用结果:" + response);
}
}
eg

