У меня есть служба, которая получает полезную нагрузку Json и обрабатывает ее дальше. Полезная нагрузка может иметь или не иметь вложенные коллекции. Пример:
// with nested collections
{"customers": [
{
"name":"John",
"invoices":[
{
"id":"1234",
"items":[
{
"invoice-id":"1234",
"sku":"abdd"
},
{
"invoice-id":"1234",
"sku":"d431"
}]
},
{
"id":"455",
"items":[
{
"invoice-id":"455",
"sku":"j3dj"
},
{
"invoice-id":"455",
"sku":"dee8"
}]
}
]
},
{
"name":"Bob"
...
}
]}
// without nested collection
{"customers": [
{
"name":"John",
"invoices":[
{
"number":"1234"
},
{
"number":"455"
}
],
"items":[
{
"invoice-id":"1234",
"sku":"abdd"
},
{
"invoice-id":"1234",
"sku":"d431"
},
{
"invoice-id":"455",
"sku":"j3dj"
},
{
"invoice-id":"455",
"sku":"dee8"
}]
},
{
"name":"Bob"
}
]}
Я хотел бы иметь возможность обрабатывать оба типа полезных нагрузок с помощью одного Java объекта. Подход, который я имею в виду, заключается в использовании собственного десериализатора, но мне было интересно, существует ли более простой подход, основанный на аннотациях.