Джексон - InvalidFormatException десериализация ENUM

Я пытаюсь десериализовать строку JSON с помощью Objectmapper jackson-databind, в котором есть набор атрибутов Enum. Это происходит, когда неизвестный атрибут, который не определен в перечислении, поступает в 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.... из String "Test": ни одно из значений, исключенных для класса Enum: []

Может ли кто-нибудь помочь мне с этой проблемой?

Спасибо!


person user1347244    schedule 11.12.2017    source источник
comment
Насколько я знаю, вам понадобится специальный десериализатор, чтобы игнорировать неизвестные значения перечисления.   -  person Franjavi    schedule 15.12.2017
comment
да .. похоже. Об этом сообщалось в сообщении о проблемах github jackson-databind, так что это может быть добавлено в качестве исправления в одном из следующих выпусков.   -  person user1347244    schedule 18.12.2017
comment
Это связано с проблемой jackson-databind, размещенной здесь: github.com/FasterXML/jackson- databind / issues / 1859   -  person user1347244    schedule 03.01.2018


Ответы (1)


Наконец, это было исправлено путем написания настраиваемого десериализатора для фильтрации значений перечисления и их установки.

person user1347244    schedule 09.02.2019