private Object setValueFromJson(JSONObject jsonObj, Object object)
throws IllegalArgumentException, IllegalAccessException,
InvocationTargetException, ParseException {
if (jsonObj == null || object == null || jsonObj.length() == 0) {
return null;
}
Method[] methods = object.getClass().getMethods();
for (Method m : methods) {
String mName = m.getName();
if (!mName.startsWith("set")) {
continue;
}
String firstLetter = mName.substring(3, 4);
String otherLetter = mName.substring(4);
String name = firstLetter.toLowerCase() + otherLetter;
String value = jsonObj.optString(name);
// 从JSON中解析出数据
if (value.trim().equals("")) {
continue;
}
Class[] parasClass = m.getParameterTypes();
if (parasClass.length != 1) {
continue;
}
// 判断方法参数类型
String paraType = parasClass[0].getName();
if (paraType.equals("java.lang.String")) {
m.invoke(object, value);
} else if (paraType.equals("java.lang.Integer")) {
m.invoke(object, Integer.parseInt(value));
} else if (paraType.equals("java.math.Bigdecimal")) {
m.invoke(object, new BigDecimal(value));
}
}
return object;
}
宝贝网址: