使用@JsonFormat时如何配置自定义错误消息?

时间:2019-08-11 01:11:57

标签: java jackson jackson2 jackson-dataformat-xml

我在这里遇到了一个问题,我不能接受错误的日期格式。

例如:

如果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;

现在的问题是,当我调用传递错误日期(2019-14-10)的api时,我刚得到400错误的请求响应。

是否可以为此验证创建自定义响应?

例如,我可以返回这样的内容吗?

{
  "code": {
    "value": 4,
    "name": "InvalidRequest"
  },
  "message": "{effectiveDate=Date is invalid. Please choose a valid date}"
}

或者至少是错误消息。

1 个答案:

答案 0 :(得分:0)

这不是杰克逊直接处理的事情。这是高阶验证API可以处理的,例如bean validators