使用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互转方式


基础教程推荐
- JSP页面跳转方法小结 2023-08-01
- Spring Annotaion Support详细介绍及简单实例 2023-08-01
- Mybatis关于动态排序 #{} ${}问题 2023-06-23
- JSP开发中Apache-HTTPClient 用户验证的实例详解 2023-08-01
- Java中ArrayList和SubList的坑面试题 2022-11-14
- JavaScript学习笔记整理_setTimeout的应用 2023-12-08
- JSP入门教程(3) 2023-12-08
- Java序列化原理详解 2023-02-10
- Java基础学习之接口详解 2023-06-10
- SpringMVC+Spring+Mybatis实现支付宝支付功能的示例代码 2024-01-18