Java 我可以仅使用lombok功能包装dto吗?
我有一个dto类用于与支付系统api交互:Java 我可以仅使用lombok功能包装dto吗?,java,json,lombok,objectmapper,Java,Json,Lombok,Objectmapper,我有一个dto类用于与支付系统api交互: @JsonInclude(JsonInclude.Include.NON_NULL) @JsonIgnoreProperties(ignoreUnknown = true) @Builder @Getter @Setter public class PaymentSystemRequestDto { @JsonProperty("order_id") protected String orderId; @JsonProperty
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
@Builder
@Getter
@Setter
public class PaymentSystemRequestDto {
@JsonProperty("order_id")
protected String orderId;
@JsonProperty("merchant_id")
protected String merchantId;
@JsonProperty("amount")
protected Long amount;
@JsonProperty("currency")
protected String currency;
@JsonProperty("version")
protected String version;
@JsonProperty("verification")
private Boolean verification = false;
@JsonProperty("verification_type")
private VerificationType verificationType;
public static class PaymentSystemRequestDtoBuilder {
public PaymentSystemRequestDtoBuilder amount(Long amount) {
this.amount = amount * 100;
return this;
}
public PaymentSystemRequestDtoBuilder cardRegistrationPayment() {
this.verification = true;
this.verificationType = VerificationType.AMOUNT;
return this;
}
}
}
当我发送请求时,基于我的dto,我有这样一个post方法主体:
{
"order_id": "a94f1d0d-21c5-4c2d-824d-d6c1875eaa30",
"merchant_id": "1234567",
"amount": 100,
"currency": "USD",
"version": "1.0",
}
我需要将主体包装到“request”对象中,使主体看起来像:
{
"request": {
"order_id": "a94f1d0d-21c5-4c2d-824d-d6c1875eaa30",
"merchant_id": "1234567",
"amount": 100,
"currency": "USD",
"version": "1.0",
}
}
但不修改对象映射器序列化/反序列化功能(不使用注释@JsonRootName)
我试图用一个生成器创建一个内部类,但它看起来很健壮和复杂。。。有什么办法来处理这个简单吗?< /p>你不能创建一个<代码> map <代码>并序列化它而不是普通的代码> PayStutsRealestDTO to /Case>对象吗?我认为这不是非常安全和方便的解决方案……而不是映射,你可以使用一个简单的单字段类;不管怎样,我觉得这张地图很简单也很简单。