我有一个 json 数组,需要从服务器接收(反序列化)并将其发送(序列化)到另一台服务器:
Example:
[
{
"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().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?还是杰克逊?