使用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互转方式 - Python技术站