我们在处理数据的时候,经常用到map对象转java对象,下面我们用代码演示下,希望能够帮助到有这方面需求的老哥。
要转换的java对象:
public class Person {
private Integer id;
private String name;
private Integer age;
private String job;
public Person() {}
public Person(Integer id, String name, Integer age, String job) {
this.id = id;
this.name = name;
this.age = age;
this.job = job;
}
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;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getJob() {
return job;
}
public void setJob(String job) {
this.job = job;
}
@Override
public String toString() {
return "Person{" +
"id=" + id +
", name='" + name + '\'' +
", age=" + age +
", job='" + job + '\'' +
'}';
}
}
定义个map集合
Map<String,Object> map = new HashMap<>();
map.put("id",1);
map.put("name","宋圆圆");
map.put("age",25);
map.put("job","技术总监");
打印如下:

第一种方式使用 JSONArray
JSONObject jsonObject = new JSONObject();
jsonObject.putAll(map);
Person person = jsonObject.toJavaObject(Person.class);
打印输出person

第二种方式实现:自定义工具类
public class MapBeanUtils {
public static <T> T mapToBean(Map<String, Object> map, Class<T> class1) {
T bean = null;
try {
bean = class1.newInstance();
BeanUtils.populate(bean, map);
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
return bean;
}
}
Person person = MapBeanUtils.mapToBean(map, Person.class);
打印:![]()
注意事项:map的key一定要和bean的属性保持一致。

本文介绍了如何将Map对象转换为Person类实例,通过两种方式:JSONArray和自定义工具类MapBeanUtils。务必确保Map键值与Person对象属性匹配。

2万+

被折叠的 条评论
为什么被折叠?



