Java 使用POJO重新映射Json属性
我有一个POJO: SampleDto.javaJava 使用POJO重新映射Json属性,java,json,pojo,Java,Json,Pojo,我有一个POJO: SampleDto.java @Data public class SampleDto{ private String A; private String B; private String C; @JsonProperty("E") private String D; } 我正在映射这些数据: {A: 1, B: 2, C: 3, E: 4} 当我在终端打印pojo时,我看到: SampleDto(A=1, B=2, C=3, D
@Data
public class SampleDto{
private String A;
private String B;
private String C;
@JsonProperty("E")
private String D;
}
我正在映射这些数据:
{A: 1, B: 2, C: 3, E: 4}
当我在终端打印pojo时,我看到:
SampleDto(A=1, B=2, C=3, D=4)
但当我用邮递员打印出来时,我看到:
[
{
"A": 1,
"B": 2,
"C": 3,
"E": 4
}
]
为什么邮递员输出和终端输出之间存在差异
我希望我的邮递员输出反映为:
[
{
"A": 1,
"B": 2,
"C": 3,
"D": 4
}
]
您在这里看到的问题可能是因为您误解了序列化与串接 无论何时用Java打印对象,它都会尝试调用该对象上的toString方法。如果您使用的是System.out.printX(…) 而您的@Property注释可能会被提供给某个序列化程序/映射程序,并生成JSON。可能是jackson和ObjectMapper
这种行为是正常的,是有意义的,因为标准打印方法不知道诸如@Property之类的注释。如果需要此POJO将“D”替换为“E”,那么您可以覆盖对象上的toString方法。我正在bodyToFlux(SampleDto.class)中进行映射,因此如果我有错误,请更正我,但这些值不会附加到属性,因此当您返回通量时,它应该使用SampleDto.java的属性?从pojoan中删除
@JsonProperty(“E”)
,这对我有什么帮助?这将导致我看到“D”:null,我不希望这样。我想将“E”映射到“D”并显示为“D”