用于更改字段的 Java Jackson 注释 [重复]

Posted

技术标签:

【中文标题】用于更改字段的 Java Jackson 注释 [重复]【英文标题】:Java Jackson annotation for changing field [duplicate] 【发布时间】:2018-12-28 03:19:55 【问题描述】:

我必须调用 3rd 方 API 以获取货币汇率,但返回的 JSON 不断变化,如果我请求 MYRUSD 的转换,它将返回给我:"MYR_USD":0.246731,所以如果我请求 @ 987654324@到USD,它会回复我"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】:

"A":5 是一个对象,其字段为A,值为5。 否 "A":5Map 与键/值对 A=5

两者都可以,但由于: 之前的值是动态的(变化的),它是您需要的第二种解释。

所以不要要求将 JSON 转换为 POJO (FreeCurrencyExchangeRate)。 要求将其转换为 Map,然后迭代该映射。

【讨论】:

以上是关于用于更改字段的 Java Jackson 注释 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

Java Jackson将空字段反序列化为POJO中的默认空列表

如何使用 Jackson json 注释枚举字段以进行反序列化

杰克逊,反序列化具有私有字段的类和没有注释的 arg-constructor

如何在没有jackson注释的情况下忽略反序列化的某些字段?

如何使用 Jackson 更改 JSON 中的字段名称

IDE 不显示 Lombok 为 Jackson 注释类生成的 getter 和 setter