通过反射获取字段上注解值
private void serialization(Class<?> requestClass, JSONObject jsonObject) throws IllegalAccessException, InstantiationException {
Field[] declaredFields = requestClass.getDeclaredFields();
for (Field declaredField : declaredFields) {
declaredField.setAccessible(true);
Class<?> type = declaredField.getType();
if (type.getTypeName().equals("java.util.List")) {
Type genericType = declaredField.getGenericType();
if (null==genericType) {
continue;
}
if (genericType instanceof ParameterizedType) {
ParameterizedType pt = (ParameterizedType) genericType;
Class<?> actualTypeArgument = (Class<?>) pt.getActualTypeArguments()[0];
JSONArray array = new JSONArray();
JSONObject jsonObject1 = new JSONObject();
serialization(actualTypeArgument,jsonObject1);
array.add(jsonObject1);
jsonObject.put(declaredField.getName(),array);
}
}else {
boolean b = declaredField.isAnnotationPresent(ApiModelProperty.class);
if (b) {
ApiModelProperty annotation = declaredField.getAnnotation(ApiModelProperty.class);
jsonObject.put(declaredField.getName(), annotation.value());
}
}
}
words to live by !

浙公网安备 33010602011771号