JSONObject.toBean(JSONObject jsonObject, Class beanClass)时,防止时间类型为系统默认时间

前端之家收集整理的这篇文章主要介绍了JSONObject.toBean(JSONObject jsonObject, Class beanClass)时,防止时间类型为系统默认时间前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

1、场景描述:前端传至后台的时间格式为yyyy-MM-dd,例如:2016-01-22,传至后台通过JSONObject.toBean(JSONObject jsonObject,Class beanClass)转换成对象时,时间转换为系统时间


2、原因:JSONObject不能识别“yyyy-MM-dd”的格式


3、解决添加一段代码

JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(new String[]{"yyyy-MM-dd"}));


4、代码

String javabo = request.getParameter("javaboJson");
    	 if (javabo!=null&&!"".equals(javabo)) {
  			JSONObject json=JSONObject.fromObject(javabo);
  			int size = json.size();
  			List<JavaBO> list= new ArrayList<JavaBO>();
  			for (int i = 0; i < size; i++) {
  				JSONObject o = (JSONObject) json.get(""+i);
  			    //处理时间避免获取当前系统时间——原因JSONObject不能识别“yyyy-MM-dd”的格式
  				JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(new String[]{"yyyy-MM-dd"}));

  				JavaBO b = (JavaBO) JSONObject.toBean(o,JavaBO.class);
  				list.add(b);
  			}
  			return list;
原文链接:https://www.f2er.com/json/289483.html

猜你在找的Json相关文章