Json Поле атрибута Джексона Custom - PullRequest
0 голосов
/ 02 февраля 2020

Я хотел бы настроить метки атрибутов во время Rest API и процесса POJO. По сути, я хотел бы вызвать POST-запрос с атрибутом A. Но когда мы сохраняем значение в DynamoDB, мы хотим, чтобы атрибут был B. Затем, когда мы вызываем GET-запрос, мы хотим, чтобы он был представлен с атрибутом A. Должен ли я использовать @JsonDeserilize?

Вызов POST-запроса со входом -

{   
    "foo": "foo",
    "bar": "bar",
    "A": "ownTest"

}

Сохранение в БД с

{   
    "foo": "foo",
    "bar": "bar",
    "**B**": "ownTest"

}

Вызов GET-запроса Вывод -

{   
    "foo": "foo",
    "bar": "bar",
    "A": "ownTest"

}

My класс сущности -

public class Test implements Serializable, IEntity<Test> {

    @Key
    @JsonProperty("foo")
    private String foo;

    @JsonProperty("bar")
    private String bar;

    private String B;

    public String getFoo() {
        return foo;
    }

    public void setFoo(String foo) {
        this.foo = foo;
    }

    public Test withFoo(String foo){
        this.setFoo(foo);
        return this;
    }


    public String getBar() {
        return bar;
    }

    public void setBar(String bar) {
        this.bar = bar;
    }

    public Test withBar(String bar){
        this.setBar(bar);
        return this;
    }


    @JsonGetter("A")
    @JsonAlias({"B"})
    public String getB() {
        return b;
    }

    public void setB(String b) {
        this.b = b;
    }

    public Test withB(String b){
        this.setB(b);
        return this;
    }

Я пробовал собственный десериализатор, но не повезло. Пожалуйста, помогите!

Спасибо!

Ответы [ 2 ]

0 голосов
/ 15 февраля 2020

Вы пробовали JsonView? Пример: https://www.baeldung.com/jackson-json-view-annotation

0 голосов
/ 02 февраля 2020

Я думаю, что вы можете использовать концепцию Аспектно-ориентированного программирования, то есть такие советы, как @Before или @Pointcut, для изменения атрибутов при отображении значений и их сохранении.

То есть на уровне пользователя или API -конечные точки, это будет атрибут A, а в базе данных - атрибут B.

Чтобы узнать больше об АОП - следуйте документам https://docs.spring.io/spring/docs/2.5.x/reference/aop.html

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