Search code examples
javajsonjacksonjson-deserialization

How to use @JsonUnwrapped in list of objects


I'm trying to deserialize a JSON object using Jackson annotation, but I can't deserialize it: Is an array of a type "Deposito"

{
  "depositos": [
    {
        "deposito": {
            "id": "13168775373",
            "nome": "Geral",
            "saldo": "100000.0000000000",
            "desconsiderar": "N",
            "saldoVirtual": "100000.0000000000"
        }
    }
  ] 
}

my java class:

@JsonUnwrapped
@JsonProperty(value ="depositos")    
private List<Deposito> depositos;

my deposito class:

@JsonRootName(value = "deposito")    
public class Deposito {
    
    private String id;
    private String nome;
    private Double saldo;
    private String desconsiderar;
    private Double saldoVirtual;
}

Solution

  • You would need to add an additional class to your model:

    public class DepositoMetadata {
        private Deposito deposito;
    }
    

    Now you need to adjust your main java class (as you called it):

    private List<DepositoMetadata> depositos;
    

    Finally, you can remove @JsonRootName(value = "deposito") from your Deposito class.