解析jsonObject,賦給指定的對象


從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;
 }

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM