在做項目的時候,前端傳入的是一個 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);
}