提问人:Shahrukh Ali 提问时间:11/15/2023 更新时间:11/16/2023 访问量:21
Java 对象到 JSON 的转换提供了 java builder 类中不存在的额外属性
Java object to JSON conversion is giving extra attributes which is not present in java builder class
问:
我正在使用 ObjectMapper 进行 Java 对象到 JSON 的转换,但它提供了我的 java 类中不存在的额外属性。
下面是 Java Object Builder 类。
@JsonDeserialize(builder = OrderSummary.Builder.class)
public class OrderSummary extends ABC {
@JsonProperty("orderCode")
private String orderCode;
@JsonProperty("transactionAmount")
private long transactionAmount;
@JsonProperty("transactionCurrency")
private String transactionCurrency;
@JsonProperty("isPayout")
private boolean isPayout;
private OrderSummary(Builder builder) {
super(builder);
orderCode = builder.orderCode;
transactionAmount = builder.transactionAmount;
transactionCurrency = builder.transactionCurrency;
isPayout = builder.isPayout;
}
public static Builder newBuilder() {
return new Builder();
}
public String getOrderCode() {
return orderCode;
}
public long getTransactionAmount() {
return transactionAmount;
}
public String getTransactionCurrency() {
return transactionCurrency;
}
public boolean isPayout() {
return isPayout;
}
@JsonPOJOBuilder
public static final class Builder extends ABC.Builder<Builder> {
private String orderCode;
private long transactionAmount;
private String transactionCurrency;
private boolean isPayout;
private Builder() {
}
public Builder withOrderCode(String val) {
orderCode = val;
return this;
}
public Builder withTransactionAmount(long val) {
transactionAmount = val;
return this;
}
public Builder withTransactionCurrency(String val) {
transactionCurrency = val;
return this;
}
public Builder withIsPayout(boolean val) {
isPayout = val;
return this;
}
public OrderSummary build() {
return new OrderSummary(this);
}
@Override
protected Builder self() {
return this;
}
}
}
它扩展了 1 个只有 2 个属性的类
- 交易代码
- 唯一标识符
但是当我使用Object Mapper对象转换为json时,json以下
{
"payout": false,
"transactionCode": "ABCJD",
"uniqueIdentifier": 78632,
"orderCode": "12345",
"transactionAmount": 1200,
"transactionCurrency": "EUR",
"isPayout": false,
}
我不确定如何在 json 中添加。"payout": false,
我尝试转换另一个没有它的 java 对象工作正常,没有任何问题。boolean
你能帮我解决这个转换吗?
答:
0赞
omar mahameed
11/16/2023
#1
我不知道你做了什么,又是怎么做到的。
一些可能是的解决方案
将此批注添加到序列化类
@JsonIgnoreProperties({"payout"})
使用Google GSON,它非常高效,非常安全,并且在所有软件工程方面都非常好。
评论