Игнорирование свойства JPA, если оно отсутствует в ответе json, и преобразование, если оно присутствует в json - PullRequest
0 голосов
/ 26 июня 2018

Я получаю ответ Json от ответа восходящего потока, как показано ниже.

{
    "fieldone": {
    "header": {
    "requestId": "1234",
    "applicationName": "office",
    "status": "SUCCESS"
    },
    "lineLevel": [{
    "ou": "1025854560",
    "status": "REJECT"
    }]
    }
}

Поле LineLevel может или не может быть частью ответа JSON каждый раз. Мы можем получать или не получать. Когда мы не получалиэто было причиной проблемы. Чтобы решить ее, я попытался с @jsonIgnore на уровне свойства, но оно игнорирует поле, когда мы получаем это конкретное поле как часть ответа.

Пробовал @JsonIgnoreProperties на уровне класса, но это вызывает проблемуесли соответствующий ответ отсутствует в ответе Json

может предоставить какие-либо указатели для его разрешения. Независимо от того, присутствует свойство LineLevel или нет в ответе Json, мне следует продолжить мой процесс

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Имея в виду принцип единой ответственности , я настоятельно рекомендую вам использовать разные классы для сущности персистентности и для отображения ответа JSON, поступающего с вышестоящего сервера.

Если стандартный код отображения одного объекта на другой представляет собой проблему, используйте основы отображения , такие как MapStruct .

0 голосов
/ 26 июня 2018

Вы можете использовать

@JsonInclude(Include.NON_NULL)
LineLevel lineLevel

Это преобразует это поле, только когда оно не равно нулю.

Вы можете получить примеры здесь

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