多层对象转多层map
时间: 2023-12-08 09:37:28 浏览: 33
以下是将多层对象转换为多层Map的示例代码:
```java
public static Map<String, Object> objectToMap(Object obj) {
Map<String, Object> map = new HashMap<>();
try {
BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
for (PropertyDescriptor property : propertyDescriptors) {
String key = property.getName();
if (!key.equals("class")) {
Method getter = property.getReadMethod();
Object value = getter.invoke(obj);
if (value != null) {
if (value.getClass().getName().startsWith("java")) {
map.put(key, value);
} else {
map.putAll(objectToMap(value));
}
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return map;
}
```
该方法使用Java的反射机制,将对象的属性名和属性值存储在Map中。如果属性值是一个对象,则递归调用该方法将其转换为Map并添加到结果Map中。