【问题标题】:Catch exception of Json unknown fields捕获 Json 未知字段的异常
【发布时间】:2022-01-03 18:22:39
【问题描述】:

同事们!我正在使用 quakus 并且需要捕获当我发送带有错误字段的请求(FAIL_ON_UNKNOWN_PROPERTIES = true)并将其发送到响应时发生的异常。我怎样才能做到这一点?也许我需要编写这个对象的自定义反序列化器?

【问题讨论】:

  • 响应的期望内容到底是什么?错误字段列表或只是一条错误消息?
  • 是的,没错,我想显示一个无效字段列表。虽然我也可以只发送错误消息而不是无效字段。我想没关系

标签: java json exception


【解决方案1】:

是的,没错,我要显示无效字段列表

好的,这就是你可以做的......

  1. 您收到的请求正文为String
  2. 然后您尝试使用控制器中的 ObjectMapper 类将其反现实化为一个对象。
  3. 然后您需要捕获抛出的异常,并从其字段(如果存在)或消息中解析出字段列表。

查看错误消息示例here。还要检查Javadoc 中的UnrecognizedPropertyException

这能解决您的问题吗?在 cmets 中告诉我。

【讨论】:

  • 是的,是这样的,你是对的,但是如果我必须将请求正文作为对象接收...这种情况有什么办法吗?
  • 会很辛苦。您必须编写自定义 servlet 过滤器或更改 Quarkus 处理这些输入的方式。从可维护性的角度来看,上面的方法似乎是最好的。
  • 亚瑟,它有效,谢谢!但是我在异常消息中只看到一个错误的字段。我们是否有任何 json 功能来捕获有关所有错误输入字段的信息?
  • 根据上面的链接,它应该显示所有错误的字段。
猜你喜欢
  • 1970-01-01
  • 2014-02-04
  • 1970-01-01
  • 2010-09-28
  • 2012-05-31
相关资源
最近更新 更多