У меня есть массив json, который мне нужно получить (десериализовать) с сервера и отправить (сериализовать) на другой сервер:
Пример:
[
{
"car-name": "string",
"parts": [
"engine",
"wheels"
]
}
]
Я начал с написания следующего POJO для представления этого Json массива:
import lombok.Builder;
import lombok.Singular;
import lombok.Value;
@Builder
@Value
public class Car {
private String carName;
@Singular("part")
private List<String> parts;
}
С этим:
- Я могу построить объект, используя Lombok как:
Car myCar = Car.builder().carName("Tesla").part("engine").part("wheels").build();
Unmarshal, используя что-то вроде
unmarshal().json(Jackson, Car.class)
.
Хотя 1) и 2) работают, они НЕ дают мне объекты, которые на самом деле представляют пример json выше.
Вместо этого они дают следующее:
{
"car-name": "string",
"parts": [
"engine",
"wheels"
]
}
Я попытался использовать родительский класс, как показано ниже:
import lombok.Builder;
import lombok.Singular;
import lombok.Value;
@Builder
@Value
public class Vehicle {
private List<Car> vehicles;
}
Но это также дает мне неправильный объект (обратите внимание на " ключи от транспортных средств по сравнению с тем, что у меня есть в моем примере выше):
{
"vehicles": {
"car-name": "string",
"parts": [
"engine",
"wheels"
]
}
}
Как я могу написать POJO, который представляет этот массив JSON, предпочтительно с использованием Lombok? Или Джексон?