用于更改字段的Java Jackson注释

时间:2018-07-18 03:44:14

标签: java spring jackson

我必须调用第三方API以获取货币汇率,但是返回的JSON一直在变化,如果我请求将MYR转换为USD,它将返回我:{"MYR_USD":0.246731},因此,如果我要求KRWUSD,它将返回我{"KRW_USD":0.000888}

我将不得不使用@JsonProperty将返回的结果映射到pojo中,是否有任何可行的方法?

我当前的硬编码解决方法:

@JsonIgnoreProperties(ignoreUnknown = true)
public class FreeCurrencyExchangeRate {

    @JsonProperty("MYR_USD")
    private double rate;

    public double getRate() {
        return rate;
    }

    public void setRate(double rate) {
        this.rate = rate;
    }
} 

1 个答案:

答案 0 :(得分:1)

{"A":5}是一个对象,其字段A的值为5
没有{"A":5}是键/值对为Map的{​​{1}}。

两者都是正确的,但是由于A=5之前的值是动态的(变化的),因此它是您需要的第二种解释。

所以不要要求将JSON转换为POJO(:)。
要求将其转换为FreeCurrencyExchangeRate,然后迭代该地图。