使用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互转方式
![](/xwassets/images/pre.png)
![](/xwassets/images/next.png)
- JavaWeb Servlet中Filter过滤器的详解 2023-07-31
- spring boot集成smart-doc自动生成接口文档详解 2023-05-25
- SpringBoot整合mybatis/mybatis-plus实现数据持久化的操作 2023-06-23
- JSP入门教程(3) 2023-12-10
- SpringBoot整合rockerMQ消息队列详解 2023-03-21
- CentOS 6.4出现Disk sda contains BIOS RAID metadata解决方法 jajavaja的专栏 2023-08-31
- java多态实现电子宠物系统 2022-10-30
- idea中lombok的用法 2023-08-08
- SpringCloud hystrix断路器与全局解耦全面介绍 2023-06-23
- Java 实现 web服务器的简单实例 2023-08-01