zoukankan      html  css  js  c++  java
  • 解析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;
     }
    

      

  • 相关阅读:
    C语言结构体+公用体+枚举训练
    TIFF图像文件格式详解
    Professional CUDA C Programming的代码实例1.1
    C语言数组强化训练
    C语言字符数组与字符串
    文件操作
    MATLAB 与Modelsim之间对测试系统的联合仿真
    FFT实现逆FFT
    眼图——概念与测量(摘记)
    《我的心曾悲伤七次》卡里·纪伯伦
  • 原文地址:https://www.cnblogs.com/HHR-SUN/p/10520781.html
Copyright © 2011-2022 走看看