gpt4 book ai didi

java - Spring boot 检查 Dto 格式有两种模式

转载 作者:行者123 更新时间:2023-11-30 02:05:46 30 4
gpt4 key购买 nike

我正在使用 Spring-boot 来公开 REST Api,我需要检查输入 DTO 的两种不同的日期模式。现在,我的代码检查格式

@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")

但我需要让客户能够以“yyyy-MM”格式发送日期。
解决方案之一是使用注释@Pattern而不是@JsonFormat注释,但是验证两个日期所需的正则表达式太长,我想知道是否有更好的解决方案。

最佳答案

尝试如下所示,

public class CustomDateSerializer extends StdSerializer<Date> {

private SimpleDateFormat formatter
= new SimpleDateFormat("dd-MM-yyyy");
private SimpleDateFormat formatter1
= new SimpleDateFormat("dd-MM");

public CustomDateSerializer() {
this(null);
}

public CustomDateSerializer(Class t) {
super(t);
}

@Override
public void serialize (Date value, JsonGenerator gen, SerializerProvider arg2)
throws IOException, JsonProcessingException {
Date date;
try {
//if not valid, it will throw ParseException
date = formatter.parse(value.toString());
} catch (ParseException e) {
try {
date = formatter1.parse(value.toString());
}catch(ParseException ex) {
ex.printStackTrace();
}
}
gen.writeString(formatter.format(date));
}
}


@JsonSerialize(使用= CustomDateSerializer.class)
公共(public)日期事件日期;

关于java - Spring boot 检查 Dto 格式有两种模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51440854/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com