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

  

解析jsonObject,赋给指定的对象的更多相关文章

  1. 自己实现简单的AOP(二)引入Attribute 为方法指定增强对象

    话续前文 : 自己实现简单的AOP(一)简介 在前一篇文章中,对AOP的实现方式做了一个简单介绍.接下来,引入Attribute 为方法指定增强对象,由此实现一个简单的AOP. 注意:指定的是增强对象 ...

  2. (69)Wangdao.com第十一天_JavaScript 指定函数对象的 this 上下文对象

    指定函数对象的 this 上下文对象 即调用函数对象的 .call() 或者 .apply() 方法 指定 this 指向指定的对象. function myFun(){ document.write ...

  3. 【转载】C#中ArrayList集合类使用Remove方法指定元素对象

    ArrayList集合是C#中的一个非泛型的集合类,是弱数据类型的集合类,可以使用ArrayList集合变量来存储集合元素信息,任何数据类型的变量都可加入到同一个ArrayList集合中,在Array ...

  4. 【转载】C#中List集合使用Remove方法移除指定的对象

    在C#的List集合操作中,有时候需要将特定的对象或者元素移除出List集合序列中,此时可使用到List集合的Remove方法,Remove方法的方法签名为bool Remove(T item),it ...

  5. java中将jsonObject字符串转化为Map对象

    java中将jsonObject字符串转化为Map对象 1.我们这里使用json-lib包进行转换,可在http://json-lib.sourceforge.net/下载依赖于下面的jar包: ja ...

  6. Gson解析JsonObject和JsonArray

    Gson中重要的几个核心类: Gson.JsonParser.JsonObject.JsonArray. 下面就是解析的步骤: public void parserJsonArray(String s ...

  7. jquery 1.7.2源码解析(二)构造jquery对象

    构造jquery对象 jQuery对象是一个类数组对象. 一)构造函数jQuery() 构造函数的7种用法: 1.jQuery(selector [, context ]) 传入字符串参数:检查该字符 ...

  8. 『Python』源码解析_从ctype模块理解对象

    1.对象的引用计数 从c代码分析可知,python所有对象的内存有着同样的起始结构:引用计数+类型信息,实际上这些信息在python本体重也是可以透过包来一窥一二的, from ctypes impo ...

  9. JavaScript 删除某个数组中指定的对象和删除对象属性

    Javascript: 删除指定对象:使用过程中只适合删除对象,如果数组中添加的是类型Function的话是删除不了的. function removeObjWithArr(_arr,_obj) { ...

随机推荐

  1. linux系统自动备份打包部署脚本

    1.使用jenkins配置任务 2.执行脚本放在/home/guard/目录下 #!/bin/sh #author wangxiangyu #当前时间 DATE=$(date +%Y%m%d) #环境 ...

  2. 【easy】189. Rotate Array

    题目标签:Array 题目给了我们一个数组 和 k. 让我们 旋转数组 k 次. 方法一: 这里有一个很巧妙的方法: 利用数组的length - k 把数组 分为两半: reverse 左边和右边的数 ...

  3. python学习第30天

    tcp协议的socket server 并发效果验证客户端的合法性socket模块还有一些其他的方法

  4. I - Beautiful People ZOJ - 2319 (二分法)

    The most prestigious sports club in one city has exactly N members. Each of its members is strong an ...

  5. MySQL存储过程中的事务执行失败之后获取错误信息

    1.表结构: 2. 存储过程中: 代码如下: BEGINDECLARE CONTINUE HANDLER FOR SQLEXCEPTIONBEGINROLLBACK;GET DIAGNOSTICS C ...

  6. Tomcat设置Windows下随系统自启

    一:确保tomcat 在点击bin\startup 文件可以正常启动访问: 二:本机安装有JDK: 三:本机环境变量配置:JAVA_HOME:C:\Java\jdk1.7.0_17; 四:本机Tomc ...

  7. [paper reading] C-MIL: Continuation Multiple Instance Learning for Weakly Supervised Object Detection CVPR2019

    MIL陷入局部最优,检测到局部,无法完整的检测到物体.将instance划分为空间相关和类别相关的子集.在这些子集中定义一系列平滑的损失近似代替原损失函数,优化这些平滑损失. C-MIL learns ...

  8. c/c++再学习:查找算法了解

    1.顺序查找 说明:顺序查找适合于存储结构为顺序存储或链接存储的线性表. 基本思想:顺序查找也称为线形查找,属于无序查找算法.从数据结构线形表的一端开始,顺序扫描,依次将扫描到的结点关键字与给定值k相 ...

  9. with原理__enter__、__exit__

    Python对with的处理还很聪明.基本思想是with所求值的对象必须有一个__enter__()方法,一个__exit__()方法. 紧跟with后面的语句被求值后,返回对象的__enter__( ...

  10. hbase读的性能优化

    任何系统都会有各种各样的问题,有些是系统本身设计问题,有些却是使用姿势问题.HBase也一样,在真实生产线上大家或多或少都会遇到很多问题,有些是HBase还需要完善的,有些是我们确实对它了解太少.总结 ...