packagecommon;importjava.lang.reflect.Method;importjava.text.SimpleDateFormat;importnet.sf.json.JSONObject;/*** 辅助处理工具
**/
public classAssistantUtil
{private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");/*** 把JSON数据转换成JAVA对象
* description: 函数的目的/功能*/
public static void setJsonObjData(Object obj, JSONObject data, String[] excludes) throwsException
{//反射获取所有方法
Method[] methods =obj.getClass().getDeclaredMethods();if (null !=methods)
{for(Method m : methods)
{
String methodName=m.getName();if (methodName.startsWith("set"))
{
methodName= methodName.substring(3);//获取属性名称
methodName = methodName.substring(0, 1).toLowerCase() + methodName.substring(1);if (!methodName.equalsIgnoreCase("class") && !isExistProp(excludes, methodName))
{try{
m.invoke(obj,newObject[] { data.get(methodName) });
}catch(IllegalArgumentException e1)
{if(m.getParameterTypes()[0].getName().equals("java.lang.Long")){
m.invoke(obj,newObject[] { Long.valueOf(data.get(methodName).toString())});
}else if(m.getParameterTypes()[0].getName().equals("java.util.Date")){
m.invoke(obj,new Object[] {data.containsKey(methodName)? sdf.parse(data.get(methodName).toString()) : null}); }
}catch(Exception e)
{
}
}
}
}
}
}private static booleanisExistProp(String[] excludes, String prop)
{if (null !=excludes)
{for(String exclude : excludes)
{if(prop.equals(exclude))
{return true;
}
}
}return false;
}
}