從JSONObject中解析數據,並賦給給定的對象
public static Object parseBean(JSONObject jsonObject, Object obj) { if (jsonObject == null || obj == null) { return null; } Class<? extends Object> clazz = obj.getClass(); Iterator<?> it = jsonObject.keys(); Field field = null; String key = null; try { while (it.hasNext()) { key = it.next().toString(); // 獲得對應的屬性 field = clazz.getDeclaredField(key); // 獲得屬性對應的值 Object val = jsonObject.get(key); // 暫不考慮Date類型 if (field.getType() == Integer.TYPE) { val = Integer.parseInt(val.toString()); } else if(field.getType() == Long.TYPE||field.getType() == Long.class) { val = Long.parseLong(val.toString()); } else if (field.getType() == Date.class) { if (field.isAnnotationPresent(DateTimeFormat.class)) { String pattern = field.getAnnotation(DateTimeFormat.class).pattern(); val = DateUtil.parse(val.toString(), pattern); } else { val = DateUtil.parseDate(val.toString()); } }else if(field.getType() == BigDecimal.class) { if (StringUtils.hasText(val.toString())) { val = new BigDecimal(val.toString()); }else{ val = null; } } // 賦值 field.setAccessible(true); field.set(obj, val); } } catch (Exception e) { e.printStackTrace(); return null; } return obj; }