把Map转换为List实体类:
/**
* 把listMap 转换为list实体类
*
* @param javaBean 要转换的bean
* @param mapList listMap
* @return list实体类
* @throws Exception
*/
public static Object mapToListBean(Class<?> javaBean, List<Map<String, Object>> mapList) throws Exception {
if (mapList == null || mapList.isEmpty()) {
return null;
}
List<Object> objectList = new ArrayList<>();
for (Map map : mapList) {
if (map != null) {
objectList.add(mapToObject(map, javaBean));
}
}
return objectList;
}
/**
* 把Map 转换为实体类
*
* @param map map
* @param beanClass 实体类
* @return 实体类
* @throws Exception
*/
public static <T> T mapToObject(Map<String, 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);
//把double转换为String
Object value = map.get(field.getName());
if (value instanceof Double) {
value = value.toString();
}
field.set(obj, value);
}
return (T) obj;
}
把Json转换为Map:
/**
* 把Json转换为Map,HashMap在不知道具体大小时,可以指定为16
*
* @param json
* @return
*/
public static Map<String, Object> getMap(String json) {
Map<String, Object> valueMap = new HashMap<String, Object>(16);
valueMap.putAll(JSONObject.parseObject(json));
return valueMap;
}
调用:
List<ErpShowPurchase> erpShowPurchases = (List<ErpShowPurchase>) mapToListBean(ErpShowPurchase.class, result);
Map转换为实体类:
UserInfo userInfo= BeanUtils.mapToObject(results.getData(),UserInfo.class);
字符串Json返回实体类:
/**
* 字符串Json返回实体类
*
* @param strJson 字符串Json
* @param <T> 类型.class
* @return 实体类
*/
public static <T> T jsonFromBean(String strJson, Class<T> aClass) {
return new Gson().fromJson(strJson, aClass);
}
调用:
ResultsMsg resultsMsg = BeanUtils.jsonFromBean(originalBody, ResultsMsg.class);