从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. 适合高要求应用的高性能MEMS IMU解决方案

    对于复杂且高动态惯性配置的MEMS IMU应用,评估功能时需要考虑许多属性.在设计周期早期评估这些属性优于追逐开放性成果,从而实现“尽可能精确”.ADI近期举行的在线研讨会[适合高要求应用的高性能ME ...

  2. Ubuntu版本linux系统安装git

    可以使用apt-get方式安装,也可以下载源代码安装,我们这里使用apt-git安装.但由于直接使用 sudo apt-get install git 安装的版本较老,因此我们参考[2]中给出的PPA ...

  3. 高德JSAPI获取当前所在位置的经度纬度

    这是在浏览器中的效果: 控制台打印出来的就是经度纬度的值 代码如下: <!doctype html> <html> <head> <meta charset= ...

  4. js-面试题整理

    var Foo = function(){ getName = function(){alert(1)}; return this; } Foo.getName = function(){alert( ...

  5. Mysql的子查询相关知识,少但是精

    Mysql子查询 概念分析: 根据相关性分: (1)不相关子查询:一条Sql语句中含有多条SELECT语句,先执行子查询,再执行外查询,子查询可对立运行 关键字:(1)先子查询,再外查询 (2)可以对 ...

  6. swoole 4种PHP回调函数风格

    匿名函数 $server->on('Request', function ($req, $resp) use ($a, $b, $c) { echo "hello world" ...

  7. 在js中获取上传图片的宽度和高度

    Html: <input type="file" id="MapUploadTd" onchange="getMapPictureSize(th ...

  8. HashMap 和 Hashtable 的 6 个区别

    HashMap 是非常重要且常用的一种集合,还有一个和它类似的集合即Hashtable,有必要知道它们之间的区别. 1.线程安全: Hashtable 是线程安全的,HashMap 则不是线程安全的. ...

  9. PADS Layout VX.2.3 出Gerber文件时遇到一个奇怪的现象

    操作系统:Windows 10 x64 工具:PADS Layout VX.2.3 对CAM Documents的NC Drill的Units进行如下设置: 之后使用CAM Preview功能,查看N ...

  10. java中文和unicode编码相互转换(转)

    工具类代码如下: package aa.com; import java.io.UnsupportedEncodingException; public class UnicodeUtil { pub ...