【问题标题】:How do I configure a custom error message when using @JsonFormat?使用@JsonFormat 时如何配置自定义错误消息?
【发布时间】:2019-12-18 04:15:22
【问题描述】:

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

例如:

如果 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 Bad request response。

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

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

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

或者至少是错误信息。

【问题讨论】:

标签: java jackson jackson2 jackson-dataformat-xml


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-23
    • 1970-01-01
    • 2013-09-23
    • 2011-08-14
    相关资源
    最近更新 更多