使用Jackson实现Map与Bean互转的方式有以下两种:
使用Jackson实现Map与Bean互转的方式有以下两种:
1. 使用ObjectMapper将Map转为Bean对象
首先需要导入jackson-databind的依赖,然后在代码中创建ObjectMapper对象。使用ObjectMapper对象,可以将Map转为Bean对象或者将Bean对象转为Map。
示例代码如下:
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
public class MapToBeanDemo {
public static void main(String[] args) throws IOException {
Map<String, Object> map = new HashMap<>();
map.put("id", 1001);
map.put("name", "张三");
map.put("age", 18);
ObjectMapper objectMapper = new ObjectMapper();
Person person = objectMapper.convertValue(map, Person.class);
System.out.println(person.getId());
System.out.println(person.getName());
System.out.println(person.getAge());
}
}
class Person {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
在上面的代码中,我们先创建了一个Map对象,然后创建了一个ObjectMapper对象。最后使用ObjectMapper.convertValue方法将Map转为Person对象。这里需要注意,Person类中的属性名要与Map中的key名相同,否则转换会失败。
2. 将Bean对象转为Map
使用ObjectMapper将Bean对象转为Map对象同样非常简单,只需要使用writeValueAsMap方法即可。示例代码如下:
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.Map;
public class BeanToMapDemo {
public static void main(String[] args) throws IOException {
Person person = new Person();
person.setId(1001);
person.setName("张三");
person.setAge(18);
ObjectMapper objectMapper = new ObjectMapper();
Map<String, Object> map = objectMapper.convertValue(person, Map.class);
System.out.println(map.get("id"));
System.out.println(map.get("name"));
System.out.println(map.get("age"));
}
}
class Person {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
在上面的代码中,我们先创建了一个Person对象,然后创建了一个ObjectMapper对象。最后使用ObjectMapper.writeValueAsMap方法将Person对象转为Map对象。
这里需要注意,如果Person类中有嵌套对象或者List等复杂对象,转换可能会存在问题。但是对于简单的Bean对象,使用Jackson实现Map与Bean互转是非常简单和方便的。
本文标题为:使用Jackson实现Map与Bean互转方式
基础教程推荐
- SpringCloud超详细讲解微服务网关Zuul基础 2023-06-30
- Spring6整合JUnit的详细步骤 2023-07-14
- Mybatis中@Param注解的用法详解 2023-03-07
- springboot如何静态加载@configurationProperties 2023-03-21
- java – mongodb-3.6.0的Spring数据 2023-11-06
- Java Vector实现班级信息管理系统 2022-11-01
- Java实现学生管理系统(IO版) 2022-11-01
- SpringBoot加载bean的八种方式总结 2023-06-30
- Javabean简介_动力节点Java学院整理 2024-03-01
- Spring Security前后分离校验token的实现方法 2022-11-01