当自定义对象没有setter方法时,利用反射将JSONObject转换为自定义(Java)对象
public T convertJSONObjectToObject(JSONObject data, Class beanClass)
throws InstantiationException, IllegalAccessException{
Object objClass = beanClass.newInstance();
Field[] declaredFields = beanClass.getDeclaredFields();
for (Field field : declaredFields) {
int modifier = field.getModifiers();
//检查变量是否为 Static 或者 Final
if(Modifier.isStatic(modifier) || Modifier.isFinal(modifier)) {
continue;
}
field.setAccessible(true);
//field.getName(): Field对象的变量名
//field.getGenericType(): Field对象的类型
filed.set(objClass, data.getObject(field.getName(), field.getGenericType()))
}
return (T)objClass;
}