gpt4 book ai didi

java - Jersey Jackson 响应实体的 JSON 反序列化导致空白字段

转载 作者:太空宇宙 更新时间:2023-11-04 06:47:28 25 4
gpt4 key购买 nike

我遇到了一个问题。当 Jersey 客户端通过调用反序列化我的 POJO 时

jersey.api.ClientResponse#getEntity(OrderCostSummary.class)

响应 json 中的所有字段(即 subTotal、shippingCost、tax 和 Total)均为空。

我最初认为这可能是与 Money 类有关的问题,即 ObjectMapper 不知道如何反序列化此类,但我有其他 api 调用,它们返回带有 Money 字段的响应实体,反序列化没有任何问题。

这是从服务器返回的 JSON:

{ "orderCostSummary":{
"subTotal":{
"amount":"9.99",
"currency":"GBP"
},
"shippingCost":{
"money": {
"amount":2.95,
"currency":"GBP"
}
},
"tax":{
"amount":0,
"currency":"GBP"
},
"total":{
"amount":12.94,
"currency":"GBP"
}}}

POJO

public class OrderCostSummary {
private Money subTotal;
private Money shippingCost;
private Money tax;
private Money total;

/**
* Instantiates a new Order cost summary.
*/
public OrderCostSummary() {
}

public Money getSubTotal() {
return subTotal;
}

public void setSubTotal(Money subTotal) {
this.subTotal = subTotal;
}

public Money getShippingCost() {
return shippingCost;
}

public void setShippingCost(Money shippingCost) {
this.shippingCost = shippingCost;
}

public Money getTax() {
return tax;
}

public void setTax(Money tax) {
this.tax = tax;
}

public Money getTotal() {
return total;
}

public void setTotal(Money total) {
this.total = total;
}

public class Money {
private BigDecimal amount;
private Currency currency;

我的钱POJO

public Money() { }

public Money(BigDecimal amount, Currency currency) {
this.amount = amount;
this.currency = currency;
}

public BigDecimal getAmount() {
return amount;
}

public void setAmount(BigDecimal amount) {
this.amount = amount;
}

public Currency getCurrency() {
return currency;
}

public void setCurrency(Currency currency) {
this.currency = currency;
}

最佳答案

也许如果你尝试一下:

public class OrderCostSummary implements Serializable {
@JsonDeserialize(as=Money.class)
private Money subTotal;
//And do the same with other fields.
...
}

请注意,我添加了“实现可序列化”,这对于序列化/反序列化的 POJO 来说更好

关于java - Jersey Jackson 响应实体的 JSON 反序列化导致空白字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23787234/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com