首页 > 解决方案 > Java Jackson 使用不同的属性名称

问题描述

我有一个生成的 Java 类,它@XMLElement在字段上用注释将名称从大写更改为小写:

class RECTYPE {
    @XmlElement(name = "simple")
    public String SIMPLE;    

    @XmlElement(name = "bool")
    public Boolean BOOL;
}

我知道我可以使用@JsonProperty使用 Jackson 更改 JSON 中的字段名称)来获取小写 Json,但我不想更改生成的类。

我可以以某种方式使用我拥有name的注释的属性@XMLElement并告诉杰克逊使用它吗?

谢谢!

标签: javajsonjackson

解决方案


您还可以在其他类上使用 Mix-in 注释。这对您的情况很有用,Mix-in 类看起来像这样:

abstract class RectypeMixIn {

  @JsonProperty("simple") abstract String getSimple(); // rename property
  @JsonProperty("bool") abstract Boolean getBool(); // rename property  
}

并以这种方式配置您的 ObjectMapper:

objectMapper.addMixInAnnotations(RECTYPE.class, RectypeMixIn.class);

在此处查看文档以获取更多详细信息


推荐阅读