Lombok注解在JSON化中,JSON生成额外生成字段问题

问题描述:

定义如下对象

    @Data
    class A{
        private String A;
        public String getC() {
            return "abab";
        }
    }

执行如下逻辑

    @Autowired
    private ObjectMapper objectMapper;
    @Test
    public 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

你可能感兴趣的:(json,java,开发语言)