杰克逊-改变名称的领域
最后修改:2020年1月26日
1.概述
这个快速教程演示了如何更改字段的名称以映射到另一个JSON属性在序列化。
如果你想更深地挖掘和学习其他酷的事情,你可以做的杰克逊2 -头主要的Jackson教程。
2.修改序列化字段的名称
与一个简单的实体:
public class MyDto {private String stringValue;public MyDto() {super();} public String getStringValue(){返回stringValue;} public void setStringValue(String stringValue) {this。stringValue = stringValue;}}
序列化它将得到以下JSON:
{“stringValue”:“有些价值”}
来定制输出,这样,而不是stringValue例如,我们得到strVal,我们只需要注释getter:
@JsonProperty("strVal") public String getStringValue(){返回stringValue;}
现在,在序列化时,我们将得到所需的输出:
{“strVal”:“有些价值”}
一个简单的单元测试可以验证输出是否正确:
@Test public void givennameoffieldischanged_whenserializing_threct () throws JsonParseException, IOException {ObjectMapper mapper = new ObjectMapper();MyDtoFieldNameChanged dtoObject =新的MyDtoFieldNameChanged();dtoObject.setStringValue(“a”);String dtoAsString = mapper.writeValueAsString(dtoObject);为了(dtoAsString,而不是(containsString(“stringValue”)));为了(dtoAsString containsString (strVal "));}
3.结论
封送一个实体以符合特定的JSON格式是一项常见的任务——本文将展示如何通过使用@JsonProperty注释。
中可以找到所有这些示例和代码片段的实现我的github项目。