java - 使用 Jackson 重命名对象中的字段

标签 java jackson

我有 JSON:

{"400" : "120Hz"} 

(实际上,我的 JSON 要复杂得多,而且基本上很大)

我使用 Jackson 将数据映射到 FrequencyDTO

public class FrequencyDTO {

    @JsonProperty("400")
    private String frequency;

    public String getFreqiency() {
        return this.frequency;
    }

    public void setFrequency(String frequency) {
        this.frequency = frequency;
    }
}

之后,我需要将此 DTO 发送到前端,但我希望它的字段是人类可读的,例如:{"Frequency_value": "120Hz"}

我想到的唯一一件事就是创建某种FrequencyFrontendDTO,例如:

public class FrequencyFrontendDTO {

    @JsonProperty("frequency_value")
    public String frequency;

    //getters and setters
}

并将其映射到FrequencyDTO

有更简洁的方法吗?

最佳答案

@JsonAlias 反序列化属性中的所有别名。但序列化仅适用于给定的@JsonProperty

public FrequencyDTO() {

@JsonProperty("frequency_value")
@JsonAlias({"400"})
private String frequency;

public String getFreqiency() {
    return this.frequency;
}

public void setFrequency(String frequency) {
    this.frequency = frequency;
}

}

关于java - 使用 Jackson 重命名对象中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50724394/

相关文章:

java - jackson Xml : How to add namespace only on root?

java - 如何将新对象添加到已创建的列表中?

java - 使用 Jackson 在 Java 中使用不同的 POJO 反序列化 JSON 数组

spring - 为什么Spring MVC json序列化比手动调用jackson慢10倍?

java - 反向@OneToMany 不可更新

java - 使用 Jackson 将 float 格式化为定点

java - 使用 LombokRequiredArgsConstructor 作为 JsonCreator

java - 如何在 Java 中对字母数字字符串进行排序

java - 如何从 java 中的 stringbuilder 对象中删除前 3 行

java - [职位]能完成什么任务?