Короче проблема в том, что у меня есть следующее тело для HttpResponse:
{"mammalList":[{"id":11,"details":{"id":3,"name":"Kangaroo","description":"Example",
"image":null},"age":40,"hasHooves":true,"hasPlacenta":false,"name":"Kangaroo"}]}
В конце есть еще одно поле "name": "Kangaroo"
Млекопитающее: Mammal(Long id, Details details, int age, boolean hasHooves, boolean hasPlacenta)
с подробностями Details(Long id, String name, String description, String image)
Скажем, у меня есть отображение Get animals/all/mammals
У меня есть метод get, который сначала создает HttpRequest
public static <E> E get(String path, Class<E> responseType) {
// Build HTTP request
HttpRequest request = HttpRequest.newBuilder().uri(URI.create(host + "/" + path))
.setHeader("Content-Type", "application/json").GET().build();
, затем пытается получить ответ
HttpResponse<String> httpResponse = client.send(request, HttpResponse.BodyHandlers.ofString());
/ * это клиент - приватный статус c final HttpClient client = HttpClient.newHttpClient (); * /
Используя бин и аннотации, я получаю метод, связанный с animals/all/mammals
, и в конце метода возвращаю следующее:
return ResponseEntity.ok(new MammalResponse(responseList));
(MammalResponse - класс, содержащий только Млекопитающее, конструкторы, геттер и сеттер)
Отладчик в конце метода показывает следующее: (что является ожидаемым)
responseList = {ArrayList@10790} size = 1
0 = {Mammal@10792}
age = 40
hasHooves = true
hasPlacenta = false
id = {Long@10793} 11
details = {Details@10794}
id = {Long@10795} 3
name = "Kangaroo"
description = "Example"
image = null
Проблема в том, что на когда я перехожу на следующую строку метода get , у меня есть следующее тело для HttpResponse:
{"mammalList":[{"id":11,"details":{"id":3,"name":"Kangaroo","description":"Example",
"image":null},"age":40,"hasHooves":true,"hasPlacenta":false,"name":"Kangaroo"}]}
В конце есть еще одно поле "name": "Kangaroo" Млекопитающий объект не имеет атрибута name, поэтому его нельзя десериализовать, и все идет вниз.
Любая идея, почему он добавляет этот дополнительный атрибут в конце сериализованной строки «Млекопитающее» и как я могу предотвратить это?
Редактировать: если я добавлю больше млекопитающих в базу данных, то каждый из них будет в списке mammalList с name
из объекта Details, помещенного в конце концов.