Джексон: разрешить вложенную или «плоскую» коллекцию при десериализации - PullRequest
1 голос
/ 13 февраля 2020

У меня есть служба, которая получает полезную нагрузку 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 объекта. Подход, который я имею в виду, заключается в использовании собственного десериализатора, но мне было интересно, существует ли более простой подход, основанный на аннотациях.

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