jackson 是否可以将相同的json字段Map到具有不同数据类型的多个Java对象

zpqajqem  于 7个月前  发布在  Java
关注(0)|答案(1)|浏览(86)

我有一个情况,我需要将同一个JSON字段Map到多个具有不同数据库的Java对象,因此,当某些条件为真时,我将用十进制值Map该字段,如果条件为假,则该字段将用整数值Map。
POJO定义如下:

@JsonProperty("purchasedQty")
private int purchasedQty

@JsonProperty("purchasedQty")
private double purchasedQty_decimal

预期执行情况:

true
{
"purchasedQty" : 1.0;
}

else
{
"purchasedQty" : 1;
}

是否有办法实现预期的执行?

lfapxunr

lfapxunr1#

实际上,可能有几种方法可以实现这一点。
首先,使用合成setter来更新与特定属性相关的所有字段。

@JsonProperty("purchasedQty")
    public void setPurchasedQtyMultiType(Number value) {
        this.purchasedQty = value.intValue();
        this.purchasedQty_decimal = value.doubleValue();
    }

第二,你可能有自定义的marticaliser,它明确地设置了所有必需的字段。
第三,你可能有不同的类,每个场景都有不同的字段类型,并选择显式地将其Map到其中一个。
也可能有其他方法。

相关问题