spring

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

2020-06-07  本文已影响0人  c7d122ec46c0

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"}

上一篇 下一篇

猜你喜欢

热点阅读