問題描述:
定義如下對象
@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