【发布时间】:2020-06-04 06:26:27
【问题描述】:
我有一个 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().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"
]
}
}
我如何编写一个表示这个 JSON 数组的 POJO,最好使用 Lombok?还是杰克逊?
【问题讨论】:
-
可以显示序列化的代码吗?
标签: java arrays json jackson lombok