springmvc接收json串,转换为实体类List方法主要分为以下几步:
"springmvc接收json串,转换为实体类List方法"主要分为以下几步:
- 接收请求并获取JSON数据
- 创建实体类
- 创建Controller方法
- 将JSON转换为实体类
- 返回Json数据
具体操作如下:
1. 接收请求并获取JSON数据
首先,我们需要创建一个POST请求来接收JSON数据
@RequestMapping(value = "/getList", method = RequestMethod.POST)
@ResponseBody
public String getList(HttpServletRequest request) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream()));
String jsonStr = "";
if(br != null){
jsonStr = br.readLine();
}
return jsonStr;
}
这个方法会返回一个String类型的JSON数据
2. 创建实体类
然后我们需要根据JSON数据来创建一个实体类,并加上注解
public class MyObject {
@JsonProperty("id")
private Integer id;
@JsonProperty("name")
private String name;
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
其中,@JsonProperty注解将JSON里的键值对映射到实体类的对应属性上
3. 创建Controller方法
接下来,我们需要在Controller里创建一个方法来处理这个JSON数据,并将它转换为实体类
@RequestMapping(value = "/getList", method = RequestMethod.POST)
@ResponseBody
public List<MyObject> getList(@RequestBody String data){
ObjectMapper objectMapper=new ObjectMapper();
JavaType javaType = objectMapper.getTypeFactory().constructParametricType(List.class, MyObject.class);
List<MyObject> myObjectList = null;
try {
myObjectList = objectMapper.readValue(data, javaType);
} catch (IOException e) {
e.printStackTrace();
}
return myObjectList;
}
这个方法还需要用到jackson库,需要在pom文件中添加:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.4</version>
</dependency>
其中,@RequestBody注解表示接收请求体参数,而不是URL参数或header参数
4. 将JSON转换为实体类
我们需要用ObjectMapper来将JSON转换为实体类
ObjectMapper objectMapper=new ObjectMapper();
JavaType javaType = objectMapper.getTypeFactory().constructParametricType(List.class, MyObject.class);
List<MyObject> myObjectList = null;
try {
myObjectList = objectMapper.readValue(data, javaType);
} catch (IOException e) {
e.printStackTrace();
}
其中,JavaType表示泛型类。第一个参数是List.class,第二个参数是MyObject.class
5. 返回Json数据
最后,我们需要将实体类转换为JSON并返回
ObjectMapper objectMapper=new ObjectMapper();
String jsonStr = "";
try {
jsonStr = objectMapper.writeValueAsString(myObjectList);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return jsonStr;
这里同样需要用到ObjectMapper,将List
示例1:
假设我们有一个JSON格式的字符串:
[{"id":1,"name":"张三"},{"id":2,"name":"李四"},{"id":3,"name":"王五"}]
调用getList方法后返回的数组:
[{"id":1,"name":"张三"},{"id":2,"name":"李四"},{"id":3,"name":"王五"}]
示例2:
假设我们有一个JSON格式的字符串:
[{"id":4,"name":"赵六"},{"id":5,"name":"孙七"}]
调用getList方法后返回的数组:
[{"id":4,"name":"赵六"},{"id":5,"name":"孙七"}]
本文标题为:springmvc接收json串,转换为实体类List方法


基础教程推荐
- 关于@MapperScan包扫描的坑及解决 2023-04-16
- 详解http请求中的Content-Type 2023-07-31
- springboot中request和response的加解密实现代码 2022-12-08
- jsp hibernate的分页代码第3/3页 2024-01-11
- java 解决Eclipse挂掉问题的方法 2024-01-10
- 用javascript制作qq注册动态页面 2023-12-16
- SpringBoot 2.5.5整合轻量级的分布式日志标记追踪神器TLog的详细过程 2023-06-17
- SpringBoot嵌入式Web容器原理与使用介绍 2023-06-17
- Spring MVC数据绑定方式 2023-06-30
- JSP servlet实现文件上传下载和删除 2023-07-30