jackson 处理日期类型

来源:互联网 发布:蚁群算法背包问题 编辑:程序博客网 时间:2024/05/18 01:28

项目环境:

Spring MVC 4  jackson


问题描述:

在Controller中需要返回json数据时,有的业务需要返回年月日格式,有的业务需要返回年月日时分秒格式,而我配置了全局的日期处理方式为年月日(因为大量业务只需要年月日)。


解决方案:

在需要年月日时分秒的字段上加上注解@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") 即可


扩展:

  • @JsonIgnoreProperties

         此注解是类注解,作用是json序列化时将java bean中的一些属性忽略掉,序列化和反序列化都受影响。

  • @JsonIgnore

         此注解用于属性或者方法上(最好是属性上),作用和上面的@JsonIgnoreProperties一样。

  • @JsonFormat

        此注解用于属性或者方法上(最好是属性上),可以方便的把Date类型直接转化为我们想要的模式,比如@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")

  • @JsonSerialize

        此注解用于属性或者getter方法上,用于在序列化时嵌入我们自定义的代码,比如序列化一个double时在其后面限制两位小数点。


public class CustomDoubleSerialize extends JsonSerializer<Double> {private DecimalFormat df = new DecimalFormat("##.00");@Overridepublic void serialize(Double value, JsonGenerator jgen,SerializerProvider provider) throws IOException,JsonProcessingException {jgen.writeString(df.format(value));}}

  • @JsonDeserialize

         此注解用于属性或者setter方法上,用于在反序列化时可以嵌入我们自定义的代码,类似于上面的@JsonSerialize

public class CustomDateDeserialize extends JsonDeserializer<Date> {private SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");@Overridepublic Date deserialize(JsonParser jp, DeserializationContext ctxt)throws IOException, JsonProcessingException {Date date = null;try {date = sdf.parse(jp.getText());} catch (ParseException e) {e.printStackTrace();}return date;}}

文章参考:点击打开链接
0 0
原创粉丝点击