Джексон включает non_null, не работающий над объектом из kotlin функции расширения - PullRequest
1 голос
/ 04 мая 2020

У меня есть весенний загрузочный проект

Я установил глобальный spring.jackson.default-property-inclusion: non_null в application.properties, который удаляет все нулевые значения, кроме как из списка объектов.

Также попытался добавление @JsonInclude на уровне класса, как показано ниже

@JsonInclude(JsonInclude.Include.NON_NULL) 
class ClassData { 

 String classId;

 List<Students> students = new ArrayList<>();

}

@JsonInclude(JsonInclude.Include.NON_NULL)

class Students {
studentId,
isVerified,
studentType

}

Ответ от моего сервера - он по-прежнему содержит нулевые значения, но за пределами структуры списка нули удаляются

{
  "students": [
    {
      "studentId": null,
      "isVerified": true,
      "studentType": null
    },
      "studentId": null,
      "isVerified": true,
      "studentType": null
    },
      "studentId": null,
      "isVerified": true,
      "studentType": null
    },
      "studentId": null,
      "isVerified": true,
      "studentType": null
    },
      "studentId": null,
      "isVerified": true,
      "studentType": null
    }
  ]
}

Вот мой преобразованный метод в kotlin, который преобразует StudentDetail из другого сервиса во внутренний объект Student

fun StudentDetail.toStudent(): Student {
    return Student().apply {
        transactionId = transactionId
        isVerified = isVerified
        transactionType = transactionType
    }
}

Spring boot version - 2.2.6.RELEASE

Все остальные объекты работают нормально, Нули удаляются, кроме ClassData? Буду признателен за любую помощь

1 Ответ

0 голосов
/ 04 мая 2020

Объекты были сгенерированы из спецификаций openapi, где studentId и studentType были установлены как требуется. Следовательно, они приходили в ответ. Исправил их.

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