как "игнорировать" @JsonIgnore при сериализации? - PullRequest
0 голосов
/ 30 декабря 2018

У меня есть атрибут String "версия" в классе Java.Я использую объектный преобразователь Джексона для сериализации Java Class Object в JSON.

Я сериализую один и тот же класс для двух сценариев использования: 1) для сохранения значения JSON в хранилище базы данных значения ключа и 2) для отправки ответа обратнок вызову API.

Для первого варианта использования мне нужен атрибут "version" в сериализованном JSON, а для второго варианта использования он не нужен для отправки обратно пользователю.

Использование @JsonIgnore дляверсия не получит этот атрибут в обоих случаях.

Я искал достаточно, чтобы увидеть, есть ли какая-либо конфигурация, которую я могу установить на картографе Джексона, чтобы игнорировать @JsonIgnore в некоторых случаях?Пока не повезло!Спасибо за предложения или обходные пути заранее.

Ответы [ 2 ]

0 голосов
/ 30 декабря 2018

Если вам нужно иметь несколько представлений, вы можете использовать @JsonView.

public class Views {
    public static class Public {
    }

    public static class Private {
    }
}

public class User {
    public int id;

    @JsonView(Views.Public.class)
    public String name;
}

https://www.baeldung.com/jackson-json-view-annotation

0 голосов
/ 30 декабря 2018

Сделайте это простым способом, в то время как во втором случае установите version на null и добавьте это свойство на уровне класса или на уровне свойства

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