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

标签 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;

现在的问题是,当我调用 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/

相关文章:

java - Paho 客户端超时,因为没有 Activity

java - 如何启用 Weblogic 12.1.2 JPA 2.1

java - Jackson JSON 映射 Facebook 数据

java - 如何使用 Jackson 将子类型序列化为 super 类型

serialization - Wildfly14 : not all fields are returned

java - Jackson - 在序列化 HashMap 对象时跳过具有空值的键

java - SHA256Digest 返回一个奇怪的哈希值

java - 如何退出 iframe?

java - 使用 Spring Data Repositories 对审计信息进行自定义 JSON 序列化

java - Jackson:Map的反序列化