当前位置: 首页 > 面试题库 >

不知道属性名称时如何使用Jackson序列化器

江阳冰
2023-03-14
问题内容

我要呼吁汇率第三方API,但JSON返回不断变化,如果我申请MYRUSD的转换,它将返回我:{"MYR_USD":0.246731},所以如果我的要求KRWUSD,它将返回我{"KRW_USD":0.000888}

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

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

@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;
    }
}

问题答案:

{"A":5}A具有值的字段的对象5。 否{"A":5}Mapwith键/值对A=5

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

因此,请勿要求将JSON转换为POJO(FreeCurrencyExchangeRate)。
要求将其转换为Map,然后迭代该地图。



 类似资料:
  • 问题内容: 我使用不同的数据库,并且根据数据库,我需要将“ id”命名为不同的名称。因此,例如在id中被命名为“ @rid” 对于MongoDB,该ID名为“ _id” 我不知道现代数据库开发人员有什么问题,不仅仅是命名id字段“ id” ^^。但是现在我有一个问题。在某些情况下,如何将ID字段动态序列化/反序列化为“ @rid”,在另一种情况下,如何动态序列化/反序列化为“ _id”? 编辑:

  • 假设我们有以下JSON, 在Java类中,我们有与上述JSON匹配的所有字段。 每次要反序列化的字段列表取决于发送信息的客户。 例如,对于customer 1,我们只想读回以下值,(并且跳过其他属性,即使在JSON中提供) 例如,对于客户2,我们希望读取以下值(并跳过其他属性,即使在JSON中提供) 使用Jackson反序列化JSON时,是否可以提供上面的数组,其中包括需要反序列化的字段, 更新:

  • 大家好,我想在将Pojo序列化为json时删除属性名。我有以下课程 SubFieldItems类: 当我序列化时,json输出是 但我希望子字段的值不带属性名,如下所示: 我可以使用什么Jackson注释,我已经尝试过在toString方法中使用@JsonValue来强制执行,就像在评论中一样,但是我一直得到奇怪的结果。请提供任何帮助,谢谢。谢谢

  • 问题内容: 我想将一个简单的对象序列化为JSON: 但是只要我这样做: 属性名称不作为指定部分,但类似于那些直接定义在类如的情况下它不是,但。 我究竟做错了什么? 问题答案: 我通过使用此问题答案中提供的技术解决了这个问题: 这是我上的课: 用法: 我还必须修改初始类:

  • 我正在努力找出如何使用杰克逊将具有速记约定的 JSON 反序列化为 Java POJO。 这里的“类型”属性可以是字符串或对象。如果它是一个字符串,那么它被认为是具有默认属性的同一对象的简单简写形式。一、 上例中的1和2是等效的。 据我所知,可以为整个“类型”对象编写自定义反序列化器。据我所知,在这种情况下,我必须手动反序列化整个“类型”对象。但是我真的想只手动处理速记形式,并将正常处理委托给基于