一个不愿透露姓名的糕 2022-08-24 15:34 采纳率: 57.1%
浏览 141

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两个参数
  • 写回答

3条回答 默认 最新

  • 不甘_ 2022-08-24 16:00
    关注

    将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对象

    评论

报告相同问题?

问题事件

  • 创建了问题 8月24日