我有 JSON:
{"400" : "120Hz"}
Run Code Online (Sandbox Code Playgroud)
(实际上,我的 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;
}
}
Run Code Online (Sandbox Code Playgroud)
之后,我需要将此 DTO 发送到前端,但我希望它的字段是人类可读的,例如:{"frequency_value" : "120Hz"}。
我唯一想到的就是创建某种FrequencyFrontendDTO,例如:
public class FrequencyFrontendDTO {
@JsonProperty("frequency_value")
public String frequency;
//getters and setters
}
Run Code Online (Sandbox Code Playgroud)
并将其映射为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;
}
Run Code Online (Sandbox Code Playgroud)
}
| 归档时间: |
|
| 查看次数: |
6172 次 |
| 最近记录: |