如何让Jackson继续解析JsonMappingException

时间:2014-07-17 16:17:17

标签: java json jackson

是否有一个解决方案允许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"
    }
}

0 个答案:

没有答案