我遇到了一个问题,我无法接受错误的日期格式。
例如:
如果 api 请求收到日期“2019-14-10”,我无法接受。 现在,当我收到该信息时,JsonFormat 给了我 2020-02-10。
为了解决这个问题,我添加了 lenient=OptBoolean.FALSE,如下所示:
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd", timezone = "America/Vancouver", lenient = OptBoolean.FALSE)
private Date effectiveDate;
现在的问题是,当我调用 api 传递错误的日期 (2019-14-10) 时,我只是得到 400 Bad 请求响应。
是否可以为此验证创建自定义响应?
例如,我可以返回这样的内容:
{
"code": {
"value": 4,
"name": "InvalidRequest"
},
"message": "{effectiveDate=Date is invalid. Please choose a valid date}"
}
或者至少是错误消息。
最佳答案
这不会是 jackson 直接处理的事情。这是更高阶验证 API 可以处理的事情,例如 bean validators .
关于java - 使用@JsonFormat时如何配置自定义错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57446689/