Jackson – 更改字段名称
上次更新:2013年12月22日
1. 概述
本快速教程演示了如何在序列化时**更改字段名称以映射到另一个 JSON 属性**。
如果您想深入了解并学习 Jackson 2 的其他很酷的功能 – 请访问主要的 Jackson 教程。
2. 更改序列化字段名称
使用一个简单的实体
public class MyDto {
private String stringValue;
public MyDto() {
super();
}
public String getStringValue() {
return stringValue;
}
public void setStringValue(String stringValue) {
this.stringValue = stringValue;
}
}
序列化它将产生以下 JSON
{"stringValue":"some value"}
为了自定义该输出,以便不用 stringValue 而是使用 – 例如 – strVal,我们需要简单地注释 getter 方法
@JsonProperty("strVal")
public String getStringValue() {
return stringValue;
}
现在,在序列化时,我们将获得所需的输出
{"strVal":"some value"}
一个简单的单元测试应该验证输出是否正确
@Test
public void givenNameOfFieldIsChanged_whenSerializing_thenCorrect()
throws JsonParseException, IOException {
ObjectMapper mapper = new ObjectMapper();
MyDtoFieldNameChanged dtoObject = new MyDtoFieldNameChanged();
dtoObject.setStringValue("a");
String dtoAsString = mapper.writeValueAsString(dtoObject);
assertThat(dtoAsString, not(containsString("stringValue")));
assertThat(dtoAsString, containsString("strVal"));
}
3. 结论
将实体编组以符合特定的 JSON 格式是一项常见的任务 – 本文展示了如何通过使用 @JsonProperty 注解来简单地完成。
支持本文的代码可在 GitHub 上获取。 一旦你以 Baeldung Pro 会员 身份登录,就开始学习并在项目上进行编码。















