Для 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.