0

我正在尝试使用其中包含一组枚举属性的 jackson-databind Objectmapper 反序列化 JSON 字符串。当枚举中未定义的未知属性进入 JSON 时,就会发生这种情况。请在下面找到我正在使用的对象映射器配置。

    ObjectMapper objectMapper = new ObjectMapper();
    objectMapper.setVisibility(PropertyAccessor.ALL, Visibility.NONE);
    objectMapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY);
    objectMapper.setSerializationInclusion(Include.NON_NULL);
   objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);

但是,反序列化 (objectMapper.readValue(jsonText, .class);) 会引发此错误。“测试”是 JSON 字符串中要反序列化的未知属性。

com.fasterxml.jackson.databind.exc.InvalidFormatException:无法com..*从字符串“Test”反序列化类型的映射键:不是有效的表示,问题:(com.fasterxml.jackson.databind.exc.InvalidFormatException)无法反序列化类型的映射键com....来自字符串“Test”:不是枚举类除外的值之一:[]

有人可以帮我解决这个问题吗?

谢谢!

4

1 回答 1

0

这最终通过编写自定义反序列化器来过滤掉枚举值并设置它们来解决。

于 2019-02-09T00:59:26.233 回答