У меня есть API, который я могу вызвать, чтобы получить некоторые объекты Json. Допустим, у меня есть два вида объектов: A
и B
.
и A
объекты имеют объект B
среди своих переменных экземпляра. Когда я вызываю свой API для получения someB
, я хочу получить следующий результат:
{
id: 234,
name: theBName,
colour: theBColour,
size: 123
}
но когда я вызываю свой API для получения someA
, я хочу получить следующий результат:
{
id: 456,
type: someAType,
b: {
id: 234,
name: theBName
}
}
Как видите, мой B
объект имеет только часть своих свойств во втором случае.
Я нашел, как сериализовать некоторые пропорции, а не другие, используя jsonViews
. Я также знаю, как сериализовать объект как только его id
при сериализации как часть другого объекта, добавив:
@JsonIdentityInfo(generator = ObjectIdGenerators.PropertyGenerator.class, property = "id")
@JsonIdentityReference(alwaysAsId = true)
public B someB;
к моему A
объекту.
Но я не могу понять, как сериализовать этот B
объект как его id
И другие свойства по моему выбору, когда и только когда он сериализован как часть A
объекта.
Я ищу что-то вроде аннотации, подобной этой:
@serialiazeUsingOnlyProperties({"property1", "property2"})
public B someB;
положить в мой объект А.