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方法


基础教程推荐
- java – MySQL在使用非常奇怪的行为准备语句时被阻止 2023-10-30
- cascade级联关系操作案例详解 2023-03-11
- springboot使用RedisRepository操作数据的实现 2022-11-28
- Jsp页面实现文件上传下载类代码第2/2页 2023-12-08
- Java聊天室之实现接收和发送Socket 2023-06-17
- SpringBoot浅析安全管理之基于数据库认证 2023-04-11
- 利用Java实现文件锁定功能 2023-04-11
- Spring Cloud Gateway 远程代码执行漏洞(CVE-2022-22947)的过程解析 2023-04-23
- Java项目实现定时任务的三种方法 2023-01-02
- MyBatis插件机制超详细讲解 2023-07-01