杰克逊回滚解析字段格式不正确

时间:2019-02-04 12:23:10

标签: java json jackson

我有一个反序列化服务器响应的类:

@JsonIgnoreProperties(ignoreUnknown = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Card {

double amount;

String cardType;
String cardNumber
... many more properties
}

API并不是非常一致,因此对于有问题的请求,我得到了一个字符串"$74.50",该字符串显然无法解析为原样的两倍。我无法修改该类,因为它可能会使实际两倍的其他地方失败。

我可以让杰克逊在不修改类的情况下直接获取字符串吗?我想可以使用ObjectMapper上的自定义解串器(例如here)来做到这一点,但不确定如何准确地将其解压缩。

1 个答案:

答案 0 :(得分:1)

amount创建其他设置器:

@JsonSetter("amount")
public void setAmount(String sAmount) {
    // parse "$74.50" to 74.50 here
    this.amount = parsedAmount;
}

将在类中调用{"amount": "$74.50"}之类的字段并更正amount集。