/**
* 描述:根据@JsonProperty生成map对象的键,并可以设置忽略空值,并可以循环获取父类的相关属性
*
* @param object 对象
* @param ignoreNullValue 忽略空值
* @return Map<Object>
* @author hucc
* @date 2023/12/5 17:43
**/
public static Map<String, Object> bean2Map(Object object, boolean ignoreNullValue) {
Map<String, Object> maps = new HashMap<>();
try {
Class<?> clazz = object.getClass();
while (clazz != null) {
Field[] fields = clazz.getDeclaredFields();
if (fields != null && fields.length > 0) {
for (Field field : fields) {
int modifiers = field.getModifiers();
// 当属性的修饰符为 private 时,需要设置 accessible 为 true
if (!field.isAccessible()) {
field.setAccessible(true);
}
if (ignoreNullValue && field.get(object) == null) {
continue;
}
JsonProperty annotation = field.getAnnotation(JsonProperty.class);
if (annotation != null) {
maps.put(annotation.value(), field.get(object));
} else {
maps.put(field.getName(), field.get(object));
}
}
}
clazz = clazz.getSuperclass();
}
} catch (Exception ex) {
ex.printStackTrace();
}
return maps;
}
【java Bean转换为MAP,兼容@JsonProperty 设置忽略空值 遍历父类属性】
最新推荐文章于 2024-05-21 14:36:57 发布