物件轉map,map轉物件
阿新 • • 發佈:2020-11-05
物件轉map,map轉物件
實體類:
FindArchiveDto findArchiveDto = new FindArchiveDto();
findArchiveDto.setContractStatus("降龍");
findArchiveDto.setCustName("明華");
findArchiveDto.setDepartmentName("趙無極");
fastjson轉換方法
//Object轉Map Map map = JSONObject.parseObject(JSONObject.toJSONString(findArchiveDto), Map.class); Map<String,Object> map = JSONObject.parseObject(JSON.toJSONString(findArchiveDto)); //Map轉Object FindArchiveDto findArchiveDto1 = JSON.parseObject(JSON.toJSONString(map), FindArchiveDto.class); FindArchiveDto findArchiveDto2 = JSONObject.toJavaObject(JSON.toJSONString(map), FindArchiveDto.class);
jackson的轉換
ObjectMapper mapper = new ObjectMapper();
//物件轉map
Map m = mapper.readValue(mapper.writeValueAsString(findArchiveDto), Map.class);
//map轉物件
FindArchiveDto dto = mapper.readValue(mapper.writeValueAsString(m), FindArchiveDto.class);
用org.apache.commons.beanutils.BeanMap進行轉換
Map<String, Object> map = new org.apache.commons.beanutils.BeanMap(findArchiveDto);
用org.apache.commons.beanutils.BeanUtils將map轉為物件
//Object轉Map public static Map<String, Object> getObjectToMap(Object obj) throws IllegalAccessException { Map<String, Object> map = new LinkedHashMap<String, Object>(); Class<?> clazz = obj.getClass(); System.out.println(clazz); for (Field field : clazz.getDeclaredFields()) { field.setAccessible(true); String fieldName = field.getName(); Object value = field.get(obj); if (value == null){ value = ""; } map.put(fieldName, value); } return map; }
//Map轉Object
public static Object mapToObject(Map<Object, Object> map, Class<?> beanClass) throws Exception {
if (map == null)
return null;
Object obj = beanClass.newInstance();
Field[] fields = obj.getClass().getDeclaredFields();
for (Field field : fields) {
int mod = field.getModifiers();
if (Modifier.isStatic(mod) || Modifier.isFinal(mod)) {
continue;
}
field.setAccessible(true);
if (map.containsKey(field.getName())) {
field.set(obj, map.get(field.getName()));
}
}
return obj;
}