是否有一个解决方案允许Jackson在识别出导致JsonMappingException
的JSON结构问题后继续解析JSON,收集所有问题并使用一个复合映射异常返回所有问题?< / p>
在下面的示例中,JSON输入中有两个属性不符合Person
类,但Jackson遇到第一个属性时停止。
能够收集有关在客户端显示中使用的所有结构问题的信息会很棒。
class JacksonValidationHandlingSpec extends Specification {
@Canonical
static class Person {
String firstName
String lastName
}
@Test
void "Unknown fields"() {
setup:
ObjectMapper mapper = new ObjectMapper();
UnrecognizedPropertyException upe
try {
mapper.readValue("""
{"firstName":"john",
"lastName":"doe",
"middleName": "d",
"anotherUnknownField": "a"}
""", Person.class)
} catch(UnrecognizedPropertyException e) {
upe = e
}
expect:
upe != null
upe.getPath().get(0).getFieldName() == "middleName"
}
}