Настройте Jackson Base64Variant на уровне класса - PullRequest
0 голосов
/ 24 февраля 2020

Из-за некоторых ограничений используемой платформы, я застрял с одним объектом отображения. В нормальных случаях объектный картограф имеет все значения по умолчанию. В новом случае использования мне нужно использовать следующую конфигурацию для нескольких классов

        objectMapper.setBase64Variant(Base64Variants.MODIFIED_FOR_URL);

Но мне нужно оставить настройку по умолчанию (MIME?) Для других как большое количество данных уже сохраняется таким образом. Я полагаю, что изменение конфигурации для всех может привести к поломке существующих данных.

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

Я бы надеялся на такую ​​аннотацию, подобную этой:

@JsonSerialize(base64Variant = Base64Variants.MODIFIED_FOR_URL)
@JsonDeserialize(base64Variant = Base64Variants.MODIFIED_FOR_URL)
public class MyClass {
  private ExternalApiObject apiObject; // the object which has byte[]/ByteArray fields
}

Но, похоже, она недоступна. Есть ли способ, которым я могу это сделать sh

...