如何在java中将地图转换为实体对象?
How to convert a map to a entity object in java?
我有一个这样的实体对象:
class Person{
private String name;
private String class;
private String semester;
}
现在我有一张这样的地图:Map<String,String>
{
"name":"Giri"
"class":"12"
"semester":"C"
}
现在我想将此地图转换为 Person 对象,其中对象中的每个字段都对应于地图中的那个字段。
我该怎么做?
谢谢
您可以为此编写自定义映射器。
toPerson(Map<String, String> map) {
if(map == null) {
return null;
}
Person person = new Person();
person.setName = map.get("name");
person.setClass = map.get("class");
person.setSemester = map.get("semester");
return person;
}
或者你可以使用 jackson convertValue()
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
Person person = mapper.convertValue(map, Person.class);
除了jackson的ObjectMapper还有DozerBeanMapper、BeanUtils,google的Gson也可以用于同样的目的。
我有一个这样的实体对象:
class Person{
private String name;
private String class;
private String semester;
}
现在我有一张这样的地图:Map<String,String>
{
"name":"Giri"
"class":"12"
"semester":"C"
}
现在我想将此地图转换为 Person 对象,其中对象中的每个字段都对应于地图中的那个字段。
我该怎么做?
谢谢
您可以为此编写自定义映射器。
toPerson(Map<String, String> map) {
if(map == null) {
return null;
}
Person person = new Person();
person.setName = map.get("name");
person.setClass = map.get("class");
person.setSemester = map.get("semester");
return person;
}
或者你可以使用 jackson convertValue()
ObjectMapper mapper = new ObjectMapper();
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
Person person = mapper.convertValue(map, Person.class);
除了jackson的ObjectMapper还有DozerBeanMapper、BeanUtils,google的Gson也可以用于同样的目的。