Я использую Jackson для маршалирования вызовов json в веб-приложении, и я пытаюсь разработать метод, который будет принимать несколько разных объектов.Маршаллинг Map to Object с Jackson
Например:
У меня есть два класса структуры
{
name:"Joe",
surname:"Bloggs"
}
Соответствует ява класса Person
{
address1:"21 Main st",
city:"Georgetown",
zip:"12345"
}
соответствует адресу класса Java
Теперь я хочу сделать вызов, который может обрабатывать любой из этих классов таким образом:
{
type:"Person",
data:{
name:"Joe",
surname:"Bloggs"
}
}
Я могу создать вызов, маршалы поступивший запрос на карту или я могу создать два отдельных запросов, по одному для каждой структуры объекта и мобилизовывать их непосредственно в соответствующие классы.
Возможно ли использовать Джексон для маршализации вышеуказанного запроса на карту, а затем, прочитав часть карты - например. map.get («type») - используйте Jackson для маршалирования под-объекта - например. map.get ("data") - в соответствующий класс java без переустановки назад в json?
Да, написание двух разных запросов - это подход, который я принимаю сейчас. Моя проблема заключается в том, что я в конечном итоге загружаю различные функции для обработки объектов, которые отличаются по структуре, но которые разделяют бизнес-логику так, как мне нужно их обрабатывать. Если вы сделаете это для двух объектов, это нормально, но если у вас есть десятки объектов, для которых вам нужно сделать, скажите четыре одинаковые операции для каждого (например, создать, обновить, удалить, список), вы получите 40 аналогичных методов , а не четыре. К сожалению, наличие общего наследования было бы слишком большим накладным в этой ситуации. – CuNimb