zoukankan      html  css  js  c++  java
  • @JsonFormat和@DateTimeFormat 实践测试

    JsonFormat :出参

    DateTimeFormate : 入参

    http://www.iteye.com/problems/53816

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")Date timeline



    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")

    @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm")


    JsonFormate会覆盖http://blog.csdn.net/silyvin/article/details/71450863中的整体配置


    http://blog.csdn.net/jixuju/article/details/52530413

    pojo的bean里面通常会有Date类型的数据,直接通过@ResponseBody返回出去的是一个长整型时间戳(从1970到该变量时间的毫秒数),关于原因,网上很多,此处不细讲。如果想要返回自定义的日期格式,如:yyyymmddhhmmss,需做相关处理,网上有很多处理方式,大体都是继承、重写,比较复杂。实际上JSON已有注解@JsonFormat支持,使用实例:

    @JsonFormat(timezone = "GMT+8", pattern = "yyyyMMddHHmmss")
    private Date createTime;

    作用:1)入参时,请求报文只需要传入yyyymmddhhmmss字符串进来,则自动转换为Date类型数据。2)出参时,Date类型的数据自动转换为14位的字符串返回出去

    详细可参阅: http://fasterxml.github.io/jackson-annotations/javadoc/2.0.0/com/fasterxml/jackson/annotation/JsonFormat.html

    相关的其他注解:

    @JsonIgnoreProperties 此注解是类注解,作用是json序列化时将Java bean中的一些属性忽略掉,序列化和反序列化都受影响。 @JsonIgnoreProperties(value = { "word" })  
    @JsonIgnore 此注解用于属性或者方法上(最好是属性上),作用和上面的@JsonIgnoreProperties一样。
    @JsonSerialize 此注解用于属性或者getter方法上,用于在序列化时嵌入我们自定义的代码,比如序列化一个double时在其后面限制两位小数点。 @JsonSerialize(using = CustomDoubleSerialize.class)  
    @JsonDeserialize 此注解用于属性或者setter方法上,用于在反序列化时可以嵌入我们自定义的代码,类似于上面的@JsonSerialize  @JsonDeserialize(using = CustomDateDeserialize.class) 


    入参我个人测试下来有问题,必须用DateTimeFormat

    参考:http://blog.csdn.net/chenleixing/article/details/45190371




    2017.11.8补充

    JsonFormat注释于public类型属性或者get函数才有效,private属性无效


  • 相关阅读:
    CEPH篇 CEPH接口(S3)
    MAC篇 超级简单的连接远程主机方法(永久记住)
    【思维论01】如何让自己像打王者荣耀一样发了疯、石乐志的学习?
    CEPH篇 CEPH部署(在线和离线 Centos 7)
    JAVA优化篇 如何从茫茫日志中找到运行缓慢的线程
    CEPH篇 块存储、文件存储和对象存储意义和差异
    CEPH篇 简介及关键对象解释
    混合使用Jquery Deferred和Angularjs的$timeout(转)
    AngularJs应用页面切换优化方案(转)
    在IE7下使用angularjs(转)
  • 原文地址:https://www.cnblogs.com/silyvin/p/9106805.html
Copyright © 2011-2022 走看看