Предположительно у меня есть POJO как это:Можете ли вы группу JSON сериализации по типу недвижимости
class POJO1 {
TypeA getFirst();
TypeA getSecond();
TypeB getThird();
String getName();
}
Я ищу, чтобы создать пользовательский сериализатор, что вывод будет таким:
{ "A" : [ serializationOf(first), serializationOf(second) ], "B" : serializationOf(second), "name" : valueOfName() }
Но вот catch, это не относится к POJO1. Значение такое же сериализации имеет место для этого другого POJO:
class POJO2 {
TypeA getFirst();
TypeA getSecond();
TypeB getThird();
String getName();
}
Или любой класс, который имеет TypeA или TypeB свойства, а это означает, что методы могут измениться. Я предпочитаю не нацеливаться на базовый класс или интерфейс, поскольку мой сериализатор должен использоваться людьми, разрабатывающими другие классы, которые я даже не представлял себе. Я смотрел на регистрацию сериализаторов TypeA и TypeB, но они, похоже, не позволяют мне изменять ключ объекта json и не группировать подобные типы в любом случае.
В чем разница между POJO1 и POJO2. Что именно вы сериализуете? Геттеры? –
Вы можете иметь базовый класс, который распространяется как POJO1, так и POJO2. Джексон, например, поддерживает полиморфную сериализацию. –
Я обновил ограничения вопроса, чтобы объяснить, почему базовый класс не является решением –