我们在处理数据的时候,经常用到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的属性保持一致。