复杂JSONObject对象的解析

复杂JSONObject对象的解析

目录

复杂JSONObject对象的解析

1、需要解析的JSONObject对象

2、根据JSONObject对象生成对应的实体类

层1:JsonRootBean

层2:Data

层3:EnterpriseList

层4-1:ServiceTeam

层4-2:ExtraInfo

3、编写Test类进行解析

4、打印解析结果

5、项目结构


1、需要解析的JSONObject对象

{
    "code":1,
    "msg":"成功",
    "data":{
        "total":1,
        "enterpriseList":[
            {
                "custId":"ICC2022081716192350E9CF73",
                "custName":"百大集团有限公司",
                "custShortName":"",
                "region":"",
                "rank":"",
                "custType":"",
                "certType":"",
                "orgNo":"",
                "taxpayerNo":"",
                "creditCode":"",
                "ecifNo":"",
                "country":"",
                "regAddress":"",
                "officeAddress":"",
                "businessScope":"",
                "industryType":"",
                "entType":"",
                "regCapital":"",
                "capitalCurrency":"",
                "regOrg":"",
                "regStatus":"",
                "regDate":"",
                "regNo":"",
                "legalRepType":"",
                "creator":"0",
                "listingAttribute":"",
                "serviceTeam":[
                    {
                        "staffName":"",
                        "staffNo":"",
                        "roleName":"",
                        "roleCode":""
                    }
                ],
                "extraInfo":{
                    "account":""
                }
            }
        ]
    }
}

2、根据JSONObject对象生成对应的实体类

层1:JsonRootBean

 

package model;
​
/**
 * Auto-generated: 2022-08-17 21:18:20
 *
 * @author json.cn (i@json.cn)
 * @website http://www.json.cn/java2pojo/
 */
public class JsonRootBean<T> {
    
    private int code;
    private String msg;
    private T data;
    
    public void setCode(int code) {
        this.code = code;
    }
    
    public int getCode() {
        return code;
    }
    
    public void setMsg(String msg) {
        this.msg = msg;
    }
    
    public String getMsg() {
        return msg;
    }
    
    public T getData() {
        return data;
    }
    
    public void setData(T data) {
        this.data = data;
    }
​
    @Override
    public String toString() {
        return "JsonRootBean{" +
                "code=" + code +
                ", msg='" + msg + '\'' +
                ", data=" + data.toString() +
                '}';
    }
}

层2:Data

package model;
​
import java.util.List;
​
/**
 * Auto-generated: 2022-08-17 21:18:20
 *
 * @author json.cn (i@json.cn)
 * @website http://www.json.cn/java2pojo/
 */
public class Data {
​
    private int total;
    private List<EnterpriseList> enterpriseList;
​
    public void setTotal(int total) {
        this.total = total;
    }
    
    public int getTotal() {
        return total;
    }
    
    public void setEnterpriseList(List<EnterpriseList> enterpriseList) {
        this.enterpriseList = enterpriseList;
    }
    
    public List<EnterpriseList> getEnterpriseList() {
        return enterpriseList;
    }
​
    @Override
    public String toString() {
        return "Data{" +
                "total=" + total +
                ", enterpriseList=" + enterpriseList.toString() +
                '}';
    }
}

层3:EnterpriseList

package model;
​
import java.util.List;
​
/**
 * Auto-generated: 2022-08-17 21:18:20
 *
 * @author json.cn (i@json.cn)
 * @website http://www.json.cn/java2pojo/
 */
public class EnterpriseList {
​
    private String custId;
    private String custName;
    private String custShortName;
    private String region;
    private String rank;
    private String custType;
    private String certType;
    private String orgNo;
    private String taxpayerNo;
    private String creditCode;
    private String ecifNo;
    private String country;
    private String regAddress;
    private String officeAddress;
    private String businessScope;
    private String industryType;
    private String entType;
    private String regCapital;
    private String capitalCurrency;
    private String regOrg;
    private String regStatus;
    private String regDate;
    private String regNo;
    private String legalRepType;
    private String legalRep;
    private String creator;
    private String listingAttribute;
    private List<ServiceTeam> serviceTeam;
    private ExtraInfo extraInfo;
​
    public void setCustId(String custId) {
        this.custId = custId;
    }
​
    public String getCustId() {
        return custId;
    }
​
    public void setCustName(String custName) {
        this.custName = custName;
    }
​
    public String getCustName() {
        return custName;
    }
​
    public void setCustShortName(String custShortName) {
        this.custShortName = custShortName;
    }
​
    public String getCustShortName() {
        return custShortName;
    }
​
    public void setRegion(String region) {
        this.region = region;
    }
​
    public String getRegion() {
        return region;
    }
​
    public void setRank(String rank) {
        this.rank = rank;
    }
​
    public String getRank() {
        return rank;
    }
​
    public void setCustType(String custType) {
        this.custType = custType;
    }
​
    public String getCustType() {
        return custType;
    }
​
    public void setCertType(String certType) {
        this.certType = certType;
    }
​
    public String getCertType() {
        return certType;
    }
​
    public void setOrgNo(String orgNo) {
        this.orgNo = orgNo;
    }
​
    public String getOrgNo() {
        return orgNo;
    }
​
    public void setTaxpayerNo(String taxpayerNo) {
        this.taxpayerNo = taxpayerNo;
    }
​
    public String getTaxpayerNo() {
        return taxpayerNo;
    }
​
    public void setCreditCode(String creditCode) {
        this.creditCode = creditCode;
    }
​
    public String getCreditCode() {
        return creditCode;
    }
​
    public void setEcifNo(String ecifNo) {
        this.ecifNo = ecifNo;
    }
​
    public String getEcifNo() {
        return ecifNo;
    }
​
    public void setCountry(String country) {
        this.country = country;
    }
​
    public String getCountry() {
        return country;
    }
​
    public void setRegAddress(String regAddress) {
        this.regAddress = regAddress;
    }
​
    public String getRegAddress() {
        return regAddress;
    }
​
    public void setOfficeAddress(String officeAddress) {
        this.officeAddress = officeAddress;
    }
​
    public String getOfficeAddress() {
        return officeAddress;
    }
​
    public void setBusinessScope(String businessScope) {
        this.businessScope = businessScope;
    }
​
    public String getBusinessScope() {
        return businessScope;
    }
​
    public void setIndustryType(String industryType) {
        this.industryType = industryType;
    }
​
    public String getIndustryType() {
        return industryType;
    }
​
    public void setEntType(String entType) {
        this.entType = entType;
    }
​
    public String getEntType() {
        return entType;
    }
​
    public void setRegCapital(String regCapital) {
        this.regCapital = regCapital;
    }
​
    public String getRegCapital() {
        return regCapital;
    }
​
    public void setCapitalCurrency(String capitalCurrency) {
        this.capitalCurrency = capitalCurrency;
    }
​
    public String getCapitalCurrency() {
        return capitalCurrency;
    }
​
    public void setRegOrg(String regOrg) {
        this.regOrg = regOrg;
    }
​
    public String getRegOrg() {
        return regOrg;
    }
​
    public void setRegStatus(String regStatus) {
        this.regStatus = regStatus;
    }
​
    public String getRegStatus() {
        return regStatus;
    }
​
    public void setRegDate(String regDate) {
        this.regDate = regDate;
    }
​
    public String getRegDate() {
        return regDate;
    }
​
    public void setRegNo(String regNo) {
        this.regNo = regNo;
    }
​
    public String getRegNo() {
        return regNo;
    }
​
    public void setLegalRepType(String legalRepType) {
        this.legalRepType = legalRepType;
    }
​
    public String getLegalRepType() {
        return legalRepType;
    }
​
    public void setCreator(String creator) {
        this.creator = creator;
    }
​
    public String getCreator() {
        return creator;
    }
​
    public void setListingAttribute(String listingAttribute) {
        this.listingAttribute = listingAttribute;
    }
​
    public String getListingAttribute() {
        return listingAttribute;
    }
​
    public void setServiceTeam(List<ServiceTeam> serviceTeam) {
        this.serviceTeam = serviceTeam;
    }
​
    public List<ServiceTeam> getServiceTeam() {
        return serviceTeam;
    }
​
    public void setExtraInfo(ExtraInfo extraInfo) {
        this.extraInfo = extraInfo;
    }
​
    public ExtraInfo getExtraInfo() {
        return extraInfo;
    }
​
    public String getLegalRep() {
        return legalRep;
    }
​
    public void setLegalRep(String legalRep) {
        this.legalRep = legalRep;
    }
​
    @Override
    public String toString() {
        return "EnterpriseList{" +
                "custId='" + custId + '\'' +
                ", custName='" + custName + '\'' +
                ", custShortName='" + custShortName + '\'' +
                ", region='" + region + '\'' +
                ", rank='" + rank + '\'' +
                ", custType='" + custType + '\'' +
                ", certType='" + certType + '\'' +
                ", orgNo='" + orgNo + '\'' +
                ", taxpayerNo='" + taxpayerNo + '\'' +
                ", creditCode='" + creditCode + '\'' +
                ", ecifNo='" + ecifNo + '\'' +
                ", country='" + country + '\'' +
                ", regAddress='" + regAddress + '\'' +
                ", officeAddress='" + officeAddress + '\'' +
                ", businessScope='" + businessScope + '\'' +
                ", industryType='" + industryType + '\'' +
                ", entType='" + entType + '\'' +
                ", regCapital='" + regCapital + '\'' +
                ", capitalCurrency='" + capitalCurrency + '\'' +
                ", regOrg='" + regOrg + '\'' +
                ", regStatus='" + regStatus + '\'' +
                ", regDate='" + regDate + '\'' +
                ", regNo='" + regNo + '\'' +
                ", legalRep='" + legalRep + '\'' +
                ", legalRepType='" + legalRepType + '\'' +
                ", creator='" + creator + '\'' +
                ", listingAttribute='" + listingAttribute + '\'' +
                ", serviceTeam=" + serviceTeam.toString() +
                ", extraInfo=" + extraInfo.toString() +
                '}';
    }
}

层4-1:ServiceTeam

package model;
​
/**
 * Auto-generated: 2022-08-17 21:18:20
 *
 * @author json.cn (i@json.cn)
 * @website http://www.json.cn/java2pojo/
 */
public class ServiceTeam {
​
    private String staffName;
    private String staffNo;
    private String roleName;
    private String roleCode;
​
    public void setStaffName(String staffName) {
        this.staffName = staffName;
    }
​
    public String getStaffName() {
        return staffName;
    }
​
    public void setStaffNo(String staffNo) {
        this.staffNo = staffNo;
    }
​
    public String getStaffNo() {
        return staffNo;
    }
​
    public void setRoleName(String roleName) {
        this.roleName = roleName;
    }
​
    public String getRoleName() {
        return roleName;
    }
​
    public void setRoleCode(String roleCode) {
        this.roleCode = roleCode;
    }
​
    public String getRoleCode() {
        return roleCode;
    }
​
    @Override
    public String toString() {
        return "ServiceTeam{" +
                "staffName='" + staffName + '\'' +
                ", staffNo='" + staffNo + '\'' +
                ", roleName='" + roleName + '\'' +
                ", roleCode='" + roleCode + '\'' +
                '}';
    }
}

层4-2:ExtraInfo

package model;
​
/**
 * Auto-generated: 2022-08-17 21:18:20
 *
 * @author json.cn (i@json.cn)
 * @website http://www.json.cn/java2pojo/
 */
public class ExtraInfo {
​
    private String account;
    
    public void setAccount(String account) {
        this.account = account;
    }
​
    public String getAccount() {
        return account;
    }
​
    @Override
    public String toString() {
        return "ExtraInfo{" +
                "account='" + account + '\'' +
                '}';
    }
}

3、编写Test类进行解析

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import model.*;
​
import java.util.ArrayList;
import java.util.List;
​
public class Test {
​
    public static void main(String[] args) {
​
        String jsonString =
                "{\n" +
                        "    \"code\":1,\n" +
                        "    \"msg\":\"成功\",\n" +
                        "    \"data\":{\n" +
                        "        \"total\":1,\n" +
                        "        \"enterpriseList\":[\n" +
                        "            {\n" +
                        "                \"custName\":\"百大集团有限公司\",\n" +
                        "                \"custShortName\":\"\",\n" +
                        "                \"region\":\"\",\n" +
                        "                \"rank\":\"\",\n" +
                        "                \"custType\":\"\",\n" +
                        "                \"certType\":\"\",\n" +
                        "                \"orgNo\":\"\",\n" +
                        "                \"taxpayerNo\":\"\",\n" +
                        "                \"creditCode\":\"\",\n" +
                        "                \"ecifNo\":\"\",\n" +
                        "                \"country\":\"\",\n" +
                        "                \"regAddress\":\"\",\n" +
                        "                \"officeAddress\":\"\",\n" +
                        "                \"businessScope\":\"\",\n" +
                        "                \"industryType\":\"\",\n" +
                        "                \"entType\":\"\",\n" +
                        "                \"regCapital\":\"\",\n" +
                        "                \"capitalCurrency\":\"\",\n" +
                        "                \"regOrg\":\"\",\n" +
                        "                \"regStatus\":\"\",\n" +
                        "                \"regDate\":\"\",\n" +
                        "                \"regNo\":\"\",\n" +
                        "                \"legalRepType\":\"\",\n" +
                        "                \"creator\":\"0\",\n" +
                        "                \"listingAttribute\":\"\",\n" +
                        "                \"serviceTeam\":[\n" +
                        "                    {\n" +
                        "                        \"staffName\":\"\",\n" +
                        "                        \"staffNo\":\"\",\n" +
                        "                        \"roleName\":\"\",\n" +
                        "                        \"roleCode\":\"\"\n" +
                        "                    }\n" +
                        "                ],\n" +
                        "                \"extraInfo\":{\n" +
                        "                    \"account\":\"\"\n" +
                        "                }\n" +
                        "            }\n" +
                        "        ]\n" +
                        "    }\n" +
                        "}";
​
​
        // 将字符串转成JSONObject对象
        JSONObject jsonObject = JSONObject.parseObject(jsonString);
​
        // 创建JsonRootBean<Data>对象
        // 一级 JSONObject对象
        JsonRootBean<Data> jsonRootBean = new JsonRootBean<>();
        // 赋值
        jsonRootBean.setCode(jsonObject.getInteger("code"));
        jsonRootBean.setMsg(jsonObject.getString("msg"));
​
        // 获取 data 对应的 JSONObject对象 jsonObjectData
        // 二级 JSONObject对象
        JSONObject jsonObjectData = jsonObject.getJSONObject("data");
​
        // 创建Data对象
        Data data = new Data();
        // 赋值
        data.setTotal(jsonObjectData.getInteger("total"));
​
        // 创建List<EnterpriseList>对象
        List<EnterpriseList> enterpriseList = new ArrayList<>();
​
        // 获取 enterpriseList 对应的 JSONArray对象 jsonArrayEnterpriseList
        // 三级 JSONArray对象
        JSONArray jsonArrayEnterpriseList = jsonObjectData.getJSONArray("enterpriseList");
​
        // 遍历 jsonArrayEnterpriseList
        for (int i = 0; i < jsonArrayEnterpriseList.size(); i++) {
​
            // 创建 JSONObject对象 jsonObjectIndex1
            // 遍历赋值为 JSONArray数组 里面的每个 JSONObject对象
            JSONObject jsonObjectIndex1 = jsonArrayEnterpriseList.getJSONObject(i);
​
            // 创建 EnterpriseList对象
            EnterpriseList list = new EnterpriseList();
​
            // 赋值
            list.setCustId(jsonObjectIndex1.getString("custId"));
            list.setCustName(jsonObjectIndex1.getString("custName"));
            list.setCustShortName(jsonObjectIndex1.getString("custShortName"));
            list.setRegion(jsonObjectIndex1.getString("region"));
            list.setRank(jsonObjectIndex1.getString("rank"));
            list.setCustType(jsonObjectIndex1.getString("custType"));
            list.setCertType(jsonObjectIndex1.getString("certType"));
            list.setOrgNo(jsonObjectIndex1.getString("orgNo"));
            list.setTaxpayerNo(jsonObjectIndex1.getString("taxpayerNo"));
            list.setCreditCode(jsonObjectIndex1.getString("creditCode"));
            list.setEcifNo(jsonObjectIndex1.getString("ecifNo"));
            list.setCountry(jsonObjectIndex1.getString("country"));
            list.setRegAddress(jsonObjectIndex1.getString("regAddress"));
            list.setOfficeAddress(jsonObjectIndex1.getString("officeAddress"));
            list.setBusinessScope(jsonObjectIndex1.getString("businessScope"));
            list.setIndustryType(jsonObjectIndex1.getString("industryType"));
            list.setEntType(jsonObjectIndex1.getString("entType"));
            list.setRegCapital(jsonObjectIndex1.getString("regCapital"));
            list.setCapitalCurrency(jsonObjectIndex1.getString("capitalCurrency"));
            list.setRegOrg(jsonObjectIndex1.getString("regOrg"));
            list.setRegStatus(jsonObjectIndex1.getString("regStatus"));
            list.setRegDate(jsonObjectIndex1.getString("regDate"));
            list.setRegNo(jsonObjectIndex1.getString("regNo"));
            list.setLegalRep(jsonObjectIndex1.getString("legalRep"));
            list.setLegalRepType(jsonObjectIndex1.getString("legalRepType"));
            list.setCreator(jsonObjectIndex1.getString("creator"));
            list.setListingAttribute(jsonObjectIndex1.getString("listingAttribute"));
​
            // 创建 List<ServiceTeam>对象
            List<ServiceTeam> serviceTeamList = new ArrayList<>();
            // 获取 serviceTeam 对应的 JSONArray对象 jsonArrayServiceTeam
            // 四级 JSONArray对象
            JSONArray jsonArrayServiceTeam = jsonObjectIndex1.getJSONArray("serviceTeam");
​
            // 遍历
            for (int j = 0; j < jsonArrayServiceTeam.size(); j++) {
​
                // 同上
                JSONObject jsonObjectIndex2 = jsonArrayServiceTeam.getJSONObject(j);
​
                ServiceTeam serviceTeam = new ServiceTeam();
​
                serviceTeam.setStaffName(jsonObjectIndex2.getString("staffName"));
                serviceTeam.setStaffNo(jsonObjectIndex2.getString("staffNo"));
                serviceTeam.setRoleName(jsonObjectIndex2.getString("roleName"));
                serviceTeam.setRoleCode(jsonObjectIndex2.getString("roleCode"));
​
                // 放进集合
                serviceTeamList.add(serviceTeam);
            }
​
            // 放进集合
            list.setServiceTeam(serviceTeamList);
​
            // 创建 ExtraInfo对象
            ExtraInfo extraInfo = new ExtraInfo();
            // 获取 extraInfo 对应的 JSONObject对象 jsonObjectExtraInfo
            // 四级 JSONObject对象
            JSONObject jsonObjectExtraInfo = jsonObjectIndex1.getJSONObject("extraInfo");
            extraInfo.setAccount(jsonObjectExtraInfo.getString("account"));
​
            // 放进集合
            list.setExtraInfo(extraInfo);
​
            // 放进集合
            enterpriseList.add(list);
        }
​
        // 赋值
        data.setEnterpriseList(enterpriseList);
​
        // 赋值
        jsonRootBean.setData(data);
​
        // 打印解析结果
        System.out.println(jsonRootBean);
    }
}

4、打印解析结果

JsonRootBean{code=1, msg='成功', data=Data{total=1, enterpriseList=[EnterpriseList{custId='null', custName='百大集团有限公司', custShortName='', region='', rank='', custType='', certType='', orgNo='', taxpayerNo='', creditCode='', ecifNo='', country='', regAddress='', officeAddress='', businessScope='', industryType='', entType='', regCapital='', capitalCurrency='', regOrg='', regStatus='', regDate='', regNo='', legalRep='null', legalRepType='', creator='0', listingAttribute='', serviceTeam=[ServiceTeam{staffName='', staffNo='', roleName='', roleCode=''}], extraInfo=ExtraInfo{account=''}}]}}

5、项目结构

导入依赖:

<dependency>
    <groupId>top.jfunc.common</groupId>
    <artifactId>converter</artifactId>
    <version>1.8.0</version>
</dependency>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值