java - 如何在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;
}
或者你可以使用杰克逊 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都可以用于同样的目的。
推荐阅读
- python - 层 conv1d 的输入 0 与层不兼容::预期 min_ndim=3,发现 ndim=2。收到的完整形状:(无,30)
- docker - 如何使用 Docker 到 Apache 的多个端口?
- visual-studio-code - vscode extensionHost 启动的当前工作目录
- php - 如何使用php从任何文件中获取css文件?
- java - 如何在一个命令中编译一堆“.java”文件?
- python - how to stop this loop from repeating
- java - 从数组中提取json数据
- angular - “找不到模块'@schematics/angular/utility/config'
- android - kotlin-reflect 库导入问题
- autohotkey - 尝试修复当我按两次键时执行功能的自动热键代码