后台转换date格式并用json传回页面

本文介绍了在后台处理中,如何在将数据转化为JSON时,对日期对象进行格式化,以便于前端页面直接使用。主要方法是遍历数据对象,将日期转换为指定格式后存储到新的属性中,确保返回给页面的JSON数据中的日期已经格式化完成。

其实思路有很多,如果是传回给页面的是对象,那用JSTL标签就可以很好的解决问题。

这里我介绍一下传json的时候怎么修改json里的date

一、比较笨但是很好理解的方法:将数据里的date对象遍历出来,进行格式化后存到另一个属性上。返回到页面

	@RequestMapping("/showPmRequest")
	public void showPmRequest(@RequestBody DispatchMessageQueryVo queryVo,HttpServletRequest request,
			HttpServletResponse response
			) throws Exception{
	
		PageHelper.startPage(queryVo.getPageIndex(), queryVo.getPageSize());
		List<Map> msgList = distributePeopleService.findMessageList(queryVo);
		PageInfo<Map> pageInfo = new PageInfo<Map>(msgList);
		List<Map> list = pageInfo.getList();
		Contants.convertMapKey2LowerCaseForList(list);
		int count = (int) pageInfo.getTotal();
		
		for (Map map : list) {
			Date beginDate =  (Date) map.get("begindate");
			//确定格式
			SimpleDateFormat sFormat = new SimpleDateFormat("yyyy-MM-dd");
			//进行格式化
			if (null!=beginDate) {
				String date = sFormat.format(beginDate);
				map.put("begindateString", date);
			}
		}
        PageModel<Map> pageModel = new PageModel<Map>(list,count);
		Contants.printJson(pageModel, response);	
	}
以上方法里的sql返回的是一个Map ,所以我使用map.put 即可,如果返回的是一个实体类对象,那么需要在实体类里新增一个例如:begindateString 这样的String对象。然后再通过Gson 传回到页面,在页面我们选择显示begindateString 即可。

二、Gson里提供了相当简单的时间转换方式
	public static void printJson(Object object,HttpServletResponse response) throws Exception
	{
		Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create(); 
		String json=gson.toJson(object);
		response.setCharacterEncoding("UTF-8");
		PrintWriter out=response.getWriter();
		out.print(json);
		System.out.println(json);
		out.flush();
		out.close();
	}

在我原来的GSON工具类里 第一句是 Gson gson = new Gson(); 现在改成Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd").create(); 

这样一来,拿到的数据里所有的date 都会被转换,放心大胆的到页面去显示吧!

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值