我有一个JacksonMappingException
,我用它来为用户产生错误:
public Map<String, List<Map<String, String>>> getErrors(JsonMappingException e) {
Map<String, List<Map<String, String>>> errors = new HashMap<>();
List<Map<String, String>> badFields = new ArrayList<>();
for (Reference ref: e.getPath()) {
Map<String, String> badField = new HashMap<>();
badField.put("field", ref.getFieldName());
badField.put("description", e.getOriginalMessage());
badFields.add(badField);
}
errors.put("errors", badFields);
return errors;
}
这很好,除了某些类别的错误,某些技术细节会泄露给用户,例如类结构等,这完全不合时宜:
{
"errors" : [ {
"field" : "id",
"description" : "Unrecognized field \"id\" (class motif.web.resource.UserResource$PutUser), not marked as ignorable"
} ]
}
我怎样才能让 description
更像 Unrecognized field\"id\"
而没有所有技术上的庞然大物?
最佳答案
JsonMappingException 有几个子类。您可以对异常类进行 instanceof 检查,然后构建您自己的描述。
关于java - 我可以自定义 Jackson 错误消息吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31329650/