JSONField与DateTimeFormat注解

##简介:
@JSONField源于fastjson,是阿里巴巴的开源框架,主要进行JSON解析和序列化。

@DateTimeFormat是spring自带的处理框架,主要用于将时间格式化。

@JsonFormat来源于jackson,Jackson是一个简单基于Java应用库,Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。

##场景:前台时间传值与后台接参实体类属性定义类型不一致;时间格式与数据库时间格式不一致

##用法:
@DateTimeFormat:
当前台传递到后台的日期为字符串,而后台接参的实体类对应的该属性为DATE类型时。用于转换
@DateTimeFormat(pattern=“前台字符串格式”)
示例:

//实体类
public class Demo{
 @DateTimeFormat(pattern = "yyyyMMdd")
 private Date startDt;
}

//接口
@RequestMapping("test")
public void getDate(Demovo){
        System.out.println("date1:"+vo.getDate());
    }

在上面代码中,要求前端传入的日期格式为yyyyMMdd;通过注解转化为日期格式;如果没有添加 @DateTimeFormat(pattern = “yyyyMMdd”);前端传来的字符串与Date 类型不一致,会报404

@JsonFormat
当后台将日期格式的数据传递到前台时,前台拿到的是"date": “2018-08-01T14:25:31.296+0000”;我们想要将其格式化为我们相应的格式,比如格式化为“yyyyMMdd”格式,则@JsonFormat(“yyyyMMdd”)

@JSONField
用于格式化到后端的日期格式以及定义接收参数的key与传到前端的key;

当我们前台传递的参数与后台实体类对象的属性名不一致时,或者是前台需要接收的对象属性名和后台定义的不一致时;示例

//实体类
public class Demo{
 @JSONField(name = "AGE")
 private Date startDt;
}

//接口
@RequestMapping("test")
public void getDate(Demovo){
        System.out.println("date1:"+vo.getDate());
    }

这个时候前台传递的值,应该为AGE:Date;才能被startDt属性所接收到;后台传递startDt值为a时,则前台接收到的值为AGE为a

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值