private static Map<String, Object> object2Map(Object object) {
Map<String, Object> map = new HashMap<>(0);
if (object != null) {
Field[] fields = object.getClass().getDeclaredFields();
map = new HashMap<>((int) (fields.length / 0.75) + 1);
for (Field field : fields) {
try {
field.setAccessible(true);
if (field.getType().equals(List.class)) {
List<Object> valueList = (List<Object>) field.get(object);
List<Map<String, Object>> list = new ArrayList<>(valueList.size());
for (Object value : valueList) {
list.add(object2Map(value));
}
map.put(field.getName(), list);
} else {
map.put(field.getName(), field.get(object));
}
} catch (Exception e) {
e.printStackTrace();
} finally {
field.setAccessible(false);
}
}
}
return map;
}