public class BeanUtils {
/**
* 转换bean
*
* @param jsonStr
* @param targetClass
* @param <T>
* @return
*/
public static <T> T toBean(String jsonStr, Class<T> targetClass, Map<String, String> asMap) {
try {
if (StringUtils.isBlank(jsonStr)) {
return null;
}
JSONObject jsonObject = JSON.parseObject(jsonStr);
T bean = targetClass.newInstance();
Iterator<Map.Entry<String, Object>> iterator = jsonObject.entrySet().iterator();
if(CollUtil.isNotEmpty(asMap)){
while (iterator.hasNext()) {
Map.Entry<String, Object> entry = iterator.next();
String key = entry.getKey();
if (asMap.containsKey(key)) {
jsonObject.put(asMap.get(key), jsonObject.remove(key));
}
}
}
Arrays.stream(targetClass.getDeclaredFields()).forEach(field -> {
field.setAccessible(true);
String name = field.getName();
try {
if (jsonObject.containsKey(name)) {
Object value = jsonObject.get(name);
field.set(bean, (value != null ? value : ""));
}
} catch (IllegalAccessException e) {
throw new RuntimeException();
}
});
return bean;
} catch (Exception e) {
throw new RuntimeException();
}
}
/**
* 转换bean
* @param jsonStr
* @param clzz
* @param <T>
* @return
*/
public static <T> T toBean(String jsonStr, Class<T> clzz){
return toBean(jsonStr,clzz,null);
}
json转对象工具
最新推荐文章于 2024-06-07 14:19:45 发布