关于@JSONField(format = “yyyy-mm-dd hh:mm:ss“)的一点疑问

3 篇文章 0 订阅

背景:因为数据库中存的时间相关的字段都是date类型的

Date day = new Date();
params.setFdCreateTime(day);

类似于这样通过实体映射存到数据库中

但是前台返回json的时候可能就是下图这样的,肯定是不友好的,前台如果要展示的话肯定还要遍历再formate一下

如果要很好的解决上述问题,需要通过alibaba.fastjson的@JSONField(format = "yyyy-mm-dd hh:mm:ss")的注解

但是在代码实现过程中发现,虽然都加了这个注解,但是有的返回的是经过formate之后的理想数据,有的确实原始数据,让我真的很无解

然后我就仔细追查对比代码,才发现

能够正常返回formate数据的是map里边直接放了一个查询结果list(list里含有date类型的数据)

        @RequestMapping(value = "/detail", method = RequestMethod.POST)
	public Object showDetail(HttpServletRequest httpServletRequest,@RequestBody Map<String,Object> params) {
		Map<String, Object> result = courseService.detailMap(params);
		return Result.ok(result,"查询成功");
	}
	

postman对应的接口返回的数据如下

而返回原始数据的是json里边放的是一个经过json转化的list

public Object getCurriculum(HttpServletRequest httpServletRequest,@RequestBody Map<String,Object> params) {
		//checkToken(httpServletRequest, parentsService);
		List<Map<String, Object>> result = courseService.getCurriculum(params);
		JSONObject json = new JSONObject();
		json.put("list", JSONArray.parseArray(JSON.toJSONString(result)));
		return Result.ok(json,"查询成功");
	}

postman对应的接口返回的数据如下

后来把返回原始数据的代码改成map放list

@RequestMapping(value = "/getCurriculum", method = RequestMethod.POST)
	public Object getCurriculum(HttpServletRequest httpServletRequest,@RequestBody Map<String,Object> params) {
		Map<String, Object> map = courseService.getCurriculum(params);
		return Result.ok(map,"查询成功");
	}
	

serviceImpl中的代码

public Map<String, Object> getCurriculum(Map<String, Object> params) {
		Map<String, Object> map = new HashMap<String, Object>();
		map.put("list",classCurriculumDao.selectByClassId(params));
		return map;
	}

postman返回数据:

但是也不难发现,经过json转化的list只显示不为空的字段,而直接map里边放list的是只有数据表的属性不管有没有值都会返回

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟茜

随多随少随你心意^-^

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值