com.alibaba.fastjson.JSON

本文介绍如何将JSON字符串转换为JavaBean对象,包括单个实体和列表实体的转换方法,并提供了一个复杂的JSON字符串转换示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

类似下面的json格式的字符串,我们可以转为jsonObject对象。

String s="{\"recordsTotal\":\"0\",\"draw\":0,\"recordsFiltered\":1}";
JSONObject jsonObject=JSON.parseObject(s);
JSONObject jsonObject1=JSONObject.parseObject(s);  都可以。
类似下面的json格式的字符串,我们可以转为jsonArray数组对象。
String s="[{\"recordsTotal\":\"0\",\"draw\":0,\"recordsFiltered\":1}]";
JSONArray jsonArray=JSON.parseArray(s);
JSONArray jsonArray1=JSONArray.parseArray(s);都可以。

 

 

上面只是转为JSON对象了,但是怎么转为JAVA BEAN 对象呢?

实体类:

public class Student {
    private String name;
    private int age;
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
}
单个实体例子:
String s="{\"name\":\"zs\",\"age\":\"23\"}";
Student student=JSON.parseObject(s,Student.class);
System.out.println(student.getAge());
String s="{\"name\":\"zs\",\"age\":\"23\"}";
Student student=JSONObject.parseObject(s,Student.class);
System.out.println(student.getAge());  都可以。

多个实体例子  

String s="[{\"name\":\"zs\",\"age\":\"23\"}]";
List<Student>students=JSON.parseArray(s,Student.class);
System.out.println(students.size());  可以的。

 

但是如果是复杂的数据呢?

类似于一个类里面有很多属性,有String的,也有List的属性。

{"code":200,

"msg":"请求成功!",

"error":""

"data":[

{"projectCode":"XM102020071510470","no":1,"dueDate":"2020-08-23","lastCompleteTime":"2020-08-25 00:00:00","status":"逾期还款","principalBalance":1914.27,"principalPaymemt":1914.27,"interestBalance":1222.67,"interestPayment":1222.67,"defaultInterestBalance":20.00,"defaultInterestPayment":20.00,"rentBalance":0.00,"rentPayment":0.00,"platformDefaultInterestBalance":0.00,"platformDefaultInterestPayment":0.00,"principalRemain":0.00,"interestRemain":0.00,"defaultInterestRemain":0.00,"rentRemain":0.00,"platformDefaultInterestRemain":0.00,"tatalBalance":0.00,"platformTransferFlag":"否","assetsDisposalStatus":"未处置"},

{"projectCode":"XM102020071510470","no":2,"dueDate":"2020-09-23","lastCompleteTime":"2020-09-23 00:00:00","status":"正常还款","principalBalance":1954.06,"principalPaymemt":1954.06,"interestBalance":1182.88,"interestPayment":1182.88,"defaultInterestBalance":0.00,"defaultInterestPayment":0.00,"rentBalance":0.00,"rentPayment":0.00,"platformDefaultInterestBalance":0.00,"platformDefaultInterestPayment":0.00,"principalRemain":0.00,"interestRemain":0.00,"defaultInterestRemain":0.00,"rentRemain":0.00,"platformDefaultInterestRemain":0.00,"tatalBalance":0.00,"platformTransferFlag":"否","assetsDisposalStatus":"未处置"},

{"projectCode":"XM102020071510470","no":3,"dueDate":"2020-10-23","lastCompleteTime":"2020-10-23 00:00:00","status":"正常还款","principalBalance":1994.67,"principalPaymemt":1994.67,"interestBalance":1142.27,"interestPayment":1142.27,"defaultInterestBalance":0.00,"defaultInterestPayment":0.00,"rentBalance":0.00,"rentPayment":0.00,"platformDefaultInterestBalance":0.00,"platformDefaultInterestPayment":0.00,"principalRemain":0.00,"interestRemain":0.00,"defaultInterestRemain":0.00,"rentRemain":0.00,"platformDefaultInterestRemain":0.00,"tatalBalance":0.00,"platformTransferFlag":"否","assetsDisposalStatus":"未处置"}

]

}

 

解决:JSON 提供了  TypeReference类。

TypeReference<QueryPageResult<MQPushReceiveDemo>> reference = new TypeReference<QueryPageResult<MQPushReceiveDemo>>() {
};

红色部分就是要转换的结果类型,如果不这样子弄,那么操作上面的写为,也编译不了啊。

所以还是写为:

TypeReference<QueryPageResult<MQPushReceiveDemo>> reference = new TypeReference<QueryPageResult<MQPushReceiveDemo>>() {};
QueryPageResult<MQPushReceiveDemo> queryPageResult = JSON.parseObject(updateResultStr, reference.getType(), JSON.DEFAULT_PARSER_FEATURE);

就可以了。

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值