杰克逊:如何在没有错误处理的情况下检查是否可以将文本解析为POJO?

时间:2016-12-09 11:16:33

标签: java json jackson

如果我想通过ObjectMapper将字符串转换为POJO,我需要每次使用try-catch块包装我的代码并忽略错误。

ObjectMapper mapper = new ObjectMapper();

try {
    mapper.readValue(body, A.class);
} catch (IOException e) {
    // NOP
}

try {
    mapper.readValue(body, B.class);
} catch (IOException e) {
    // NOP
}

throw new RuntimeException("Could not parse the response body");

如果字符串可转换为POJO类,是否可以在调用方法readValue之前进行检查?

1 个答案:

答案 0 :(得分:0)

是的但它可能会返回null。 配置对象映射器不会因未知属性而失败。

mapper.configure(DeserializationConfig.Feature.FAIL_ON_UNKNOWN_PROPERTIES, false);
A a = mapper.readValue(body, A.class);

org.codehaus.jackson.map.DeserializationConfig