DEV Community

Cover image for Anotación @JsonUnwrapped
Ciro
Ciro

Posted on • Edited on

Anotación @JsonUnwrapped

La anotación @JsonUnwrapped es una anotación de la biblioteca Jackson para Java que se utiliza para indicar una propiedad no debe estar anidada en la estructura JSON resultante, sino que debe estar a nivel superior.

Por ejemplo, supongamos que tenemos una clase Person que tiene una propiedad Address que también es una clase con sus propias propiedades. Si queremos serializar un objeto Person en JSON, la estructura resultante sería algo así como:

{
    "name": "Juan",
    "address": {
        "street": "Calle 123",
        "city": "Ciudad de México",
        "state": "CDMX"
    }
}
Enter fullscreen mode Exit fullscreen mode

Sin embargo, si queremos que las propiedades de Address estén en el mismo nivel que las propiedades de Person, podemos utilizar la anotación @JsonUnwrapped en la propiedad Address. La clase Person se vería así:

public class Person {

    private String name;

    @JsonUnwrapped
    private Address address;
}

public class Address {

    private String street;

    private String city;

    private String state;
}
Enter fullscreen mode Exit fullscreen mode

Al serializar un objeto Person utilizando esta clase, la estructura resultante sería:

{
    "name": "Juan",
    "street": "Calle 123",
    "city": "Ciudad de México",
    "state": "CDMX"
}
Enter fullscreen mode Exit fullscreen mode

Como podemos ver, las propiedades de Address se desempaquetaron y se incluyeron en el mismo nivel que las propiedades de Person.

En resumen, la anotación @JsonUnwrapped es una herramienta que puede ser útil en situaciones en las que queremos una estructura JSON más simple o para facilitar la integración con otros sistemas que esperan una estructura JSON específica.

Top comments (0)