Java Jackson:允许嵌套或;“平坦”;反序列化时的集合

Java Jackson:允许嵌套或;“平坦”;反序列化时的集合,java,json,jackson,Java,Json,Jackson,我有一个接收Json负载并进一步处理它的服务。 负载可能有也可能没有嵌套的集合。例如: // with nested collections {"customers": [ { "name":"John", "invoices":[ { "id":"1234", "items":[ { "invoice-id":"1234", "sku":"abdd"

我有一个接收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"
     ...
   }
]}
我希望能够用一个Java对象处理这两种类型的有效负载。我想到的方法是使用自定义反序列化器,但我想知道是否有更简单的基于注释的方法

// 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"
   }
]}