Добавление пользовательского сериализатора Джексона на основе имени поля, а не типа класса - PullRequest
0 голосов
/ 07 сентября 2018

Для Jackson ObjectMapper я видел примеры пользовательских сериализаторов объектов, которые выглядят примерно так:

objectMapper.registerModule(new SimpleModule().addSerializer(MyClass.class, new MyClassSerializer()));

...

public class MyClassSerializer extends JsonSerializer<MyClass> {
    @Override
    public void serialize(MyClass value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
        ...
    }
}

Это работает очень хорошо, если вы знаете тип класса, для которого вы хотите иметь собственную логику сериализации. Тем не менее, я хочу сказать ObjectMapper исключить любые поля во время сериализации, которые содержат слово «шифрование» в их имени поля, независимо от их типа класса. Просматривая методы ObjectMapper, я вижу много методов, которые выглядят многообещающими ... но все они принимают тип класса. Можно ли как-нибудь реализовать эту пользовательскую сериализацию на основе имени поля?

Также, пожалуйста, не говорите мне ставить @JsonIngore или что-то подобное на сами классы, которые сериализуются. Классы генерируются автоматически и не могут быть отредактированы, поэтому я пытаюсь найти способ настроить это на самом ObjectMapper.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...