Lombok / Jackson-JSON数组的POJO

问题描述 投票:1回答:1

我有一个需要从服务器接收(反序列化)并发送(序列化)到另一台服务器的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;
}

使用此:

  1. 我能够使用Lombok以以下方式构建对象:

Car myCar = Car.builder().carName("Tesla").part("engine").part("wheels").build();

  1. 使用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?还是杰克逊?

我有一个json数组,我需要从服务器接收(反序列化)并将其发送(序列化)到另一台服务器:示例:[{“ car-name”:“ string”,“ parts”:[“ engine “,” wheels“ ...

java arrays json jackson lombok
1个回答
0
投票

您不需要将List<Car>包装在Vehicle类中,因为Vehicle表示JsonObject,而vehicles是其中的一个属性。只需直接返回或序列化List<Car>

© www.soinside.com 2019 - 2024. All rights reserved.