Джексон: Как я могу включить различные свойства дочернего объекта для нескольких объектов, которые содержат этот дочерний объект в качестве поля - PullRequest
0 голосов
/ 30 января 2020

У меня есть два класса, которые инкапсулируют один и тот же класс, например:

class A1 {
  private Child child;
}

class B1 {
  private Child child;
}

class Child {
  private String a;
  private String b;
}

Можно ли настроить Джексона для сериализации только свойства 'a' из класса Child при сериализации класса A1 и свойства 'b' из класс Child при сериализации класса B1, например:

Child child = new Child();
child.setA("a");
child.setB("b");

A1 a1 = new A1();
a1.setChild(child);
B1 b1 = new B1();
b1.setChild(child);

желаемый вывод при сериализации A1:

{
   "child": {
     "a": "a",
   }
}

желаемый вывод при сериализации B1:

{
   "child": {
     "b": "b",
   }
}

Спасибо за ваш время и помощь!

1 Ответ

0 голосов
/ 30 января 2020

Это можно сделать с помощью пользовательской реализации сериализации, расширяющей StdSerializer.

Вам нужно будет указать, какие параметры сериализировать при вызове сериализатора.

https://www.baeldung.com/jackson-object-mapper-tutorial

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