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"}
网友评论