问题描述:
定义如下对象
@Dataclass A{private String A;public String getC() {return "abab";}}
执行如下逻辑
@Autowiredprivate ObjectMapper objectMapper;@Testpublic void test4() throws Exception {A a = new A();a.setA("a");System.out.println(objectMapper.writeValueAsString(a));}
将对象A转化为JSON,我们期望得到的结果是:{"a":"a"},但实际得到的是:{"a":"a","c":"abab"}。
在转化为json的过程中,对象A莫名多出了一个字段:c
问题分析
原因是在的 A类中,你有一个名为 getC
的方法,这个方法被 Lombok 自动生成了 getter 方法,并导致在 JSON 序列化时生成了名为 C的字段。
问题解决:
将A class中的getC改名为toC,或者删除改方法。在Lombok注解下,最好不要手写get方法,这可能会导致想不到的问题。也是因为这个破问题,前后端对接对接到死,真实吐了。简化一下遇到的问题,同时记录一下这个奇葩的bug