美文网首页spring
spring post 请求枚举和时间格式的处理

spring post 请求枚举和时间格式的处理

作者: c7d122ec46c0 | 来源:发表于2020-06-07 17:41 被阅读0次

    yyyy-MM-dd HH:mm:ss string 类型时间的转化

    经常遇到的就是yyyy-MM-dd HH:mm:ss string类型转为date类型,可以使用@JsonFormat注解
    spring 使用的是jackson 反序列化json,默认的并不是yyyy-MM-dd HH:mm:ss,JsonFormat既可以序列化,也可以反序列化,加在对象属性上,可以把接收的yyyy-MM-dd HH:mm:ss pattern的String转为date,返回给前端时可以把date转为yyyy-MM-dd HH:mm:ss 类型的String

    枚举类型的处理

    如下代码可以使用@JsonCreator,把数值类型转为后台的enum类型,同时向前台输出的时候使用@JsonValue
    如下代码

    public enum EnumA {
    
        A((byte) 1, "2", "A"),
        B((byte) 2, "2", "B");
        private final byte value;
        private final String strValue;
        private final String desc;
        @JsonValue
        public String getDesc() {
            return desc;
        }
    
    
        EnumA(byte value, String strValue, String desc) {
            this.value = value;
            this.desc = desc;
            this.strValue = strValue;
        }
    
        @JsonCreator
        public static EnumA valueOf(Byte value) {
            return Arrays.stream(EnumA.values())
                    .filter(e -> e.value == value)
                    .findFirst()
                    .orElseThrow(() -> new BaseException("请假操作类型错误"));
        }
    }
    
    
    
    @Data
    public class TestString2Date {
    
        @NotNull(message = "时间不能为null")
        @JsonFormat(locale="zh", timezone="GMT+8", pattern="yyyy-MM-dd HH:mm:ss")
        private Date date;
    
    
        private EnumA enumA;
    }
    
    

    测试代码

    由于这个String 的json 格式有问题,只能截图了


    捕获.PNG

    输出

    {"date":"2019-01-02 00:00:00","enumA":"A"}
    
    

    相关文章

      网友评论

        本文标题:spring post 请求枚举和时间格式的处理

        本文链接:https://www.haomeiwen.com/subject/ktnctktx.html