JSON.parseObject 构造方法转化问题

实体类中构造方法没有的参数使用JSON.parseObject方法无法成功转化
@Data
public class TestData {
    private String a;
    private String b;
    private String c;
    private String d;
     //构造方法
    public TestData (String a, String b) {
        this.a= a;
        this.b= b;
    }

}


 TestData t= JSON.parseObject(data, TestData.class);
  String c= auth.getC();   //这个时候为空  去掉构造方法只用@Data的里面带的get set方法就可以使用
其中的json data值为
"data": {
        "c": "1",
        "d": "2"
    }
去掉构造方法只用@Data的里面带的get set方法 c可以获取到 ,不去掉的话,一直为空,是什么原因?
我想要可以有a.b参数 构造方法的同时,JSON.parseObject 可以转化实体类含有 c.d两个参数

将json字符串转换为java对象
同样先将json字符串转换为json对象,再将json对象转换为java对象,如下所示。

JSONObject obj = new JSONObject().fromObject(jsonStr);//将json字符串转换为json对象

将json对象转换为java对象

Person jb = (Person)JSONObject.toBean(obj,Person.class);//将建json对象转换为Person对象

初步判断我的代码中c,d 属性是带下划线的属性可能跟驼峰命名有关系 a,b是纯字母属性

看下这篇博客,也许你就懂了,链接:JSON.parseObject方法的使用