Используйте @Встраиваемый Без Вложенного JSON

#java #embeddable #javax.persistence

Вопрос:

Я пытаюсь использовать аннотации @Embedded и @Embeddable javax, чтобы мои классы Java были чище, но я хочу, чтобы полученный JSON был сглажен.

ЖЕЛАЕМОЕ ПОВЕДЕНИЕ:

 [
    {
        "id": "6edbced5-2d27-4257-a140-2925291daaf6",
        "name": "Online Maria DB",
        "address": "Syble Forks",
        "city": "Dallas",
        "state": "Texas",
        "country": "United States"
        "phoneNumber": "(789) 740-5789",
        "orgUserName": "online-maria"
    }
]
 

ФАКТИЧЕСКОЕ ПОВЕДЕНИЕ:

 [
    {
        "id": "6edbced5-2d27-4257-a140-2925291daaf6",
        "name": "Online Maria DB",
        "addressDetails": {
            "address": "Syble Forks",
            "city": "Dallas",
            "state": "Texas",
            "country": "United States"
        },
        "phoneNumber": "(789) 740-5789",
        "orgUserName": "online-maria"
    }
]
 

Возможно ли это с помощью этих аннотаций?

Что у меня есть до сих пор:

Organization.java

 @Embedded
private Address address;
 

Address.java

 @Embeddable
public class Address {
    ...
}

 

Комментарии:

1. Пожалуйста, поделитесь тем, что вы уже сделали.

2. Внес правку и добавил ее в мой вопрос.

3. Я предполагаю, что вы используете Jackson для сериализации этих объектов, верно?

Ответ №1:

Вы можете использовать @JsonUnwrapped аннотацию Джексона, если используете Jackson . Также вы можете написать пользовательский сериализатор

 public class Organization {

    @JsonUnwrapped
    @Embedded
    private Address address;
   
    // other code
}