【Java】Map 通过key取value值时,将取出的LinkedHashMap转换为实体对象
在做项目的时候,前端传入的是一个 HashMap<String,Object> stringObjectMap。
Object是不同的实体对象,通过key取对应的value时,我想让它转换为实体对象,可是打断点测试发现,取出的是一个LinkedHashMap型的对象
所以找到了以下的转换方法:
Map<String,Object> map = new HashMap<>(); Object object = new Object(); map.put("key1",object); //新建一个 ObjectMapper 对象 ObjectMapper objectMapper = new ObjectMapper(); User user = objectMapper.convertValue(map.get("key1"),User.class);
附加:
map通过遍历key,取value的方法:用lamda表达式,如下:
stringObjectMap.forEach((key, value) -> { if (key.equals(transport)) { ProjectPlanPurchaseTransport projectPlanPurchaseTransport = objectMapper.convertValue(value, ProjectPlanPurchaseTransport.class); projectPlanPurchaseTransport.setTransportId(IdGenerator.UUID()); projectPlanPurchaseTransport.setCreateUser(UserSession.getUserId()); projectPlanPurchaseTransportMapper.insert(projectPlanPurchaseTransport); }