问题形容

因为接口传参须要序列化对象,且字段名是全大写例如ZPRODUCT须要传输的格局为

{    "ZPRODUCT":"afb"}

而如果不加JsonProperty注解会为

{    "zproduct":"afb"}

这不是咱们想要的,因此咱们应用@JsonProperty("ZPRODUCT")来申明该字段序列化为咱们定义的全大写,同时咱们我的项目中应用到了Lombok,应用@Data注解来生成get|set等办法,当咱们序列化之后发现序列化字符串为

{    "ZPRODUCT":"afb",    "zproduct":"afb"}

没错,多了一个属性。
很显著的序列化问题,而且必然和Lombok存在关系,所以咱们关上编译后的Class文件发现setZPRODUCT办法上没有被注解@JsonProperty("ZPRODUCT")

解决方案

1:lombok更改为1.18.14,没错这个版本能够,我之前应用的为1.18.22比照两个版本生成的class文件能够发现14版本的set办法上有@JsonProperty("ZPRODUCT")注解而22版本上没有
2: 去掉@Data注解,本人写get|set办法,并加上注解@JsonProperty("ZPRODUCT")