利用com.alibaba.fastjson.JSONObject三层封装List对象

 1.简写一下,就不亮出来完整的代码了,首先定义一下最外层的 ResultInfoP0 类,生成set和get方法就行。

public class ResultInfoP0 implements Serializable {
    private int code;
    private String msg;
    private DataPO data;

    public ResultInfoP0() {
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    public DataPO getData() {
        return data;
    }

    public void setData(DataPO data) {
        this.data = data;
    }

}

2.生成DataPO类用来放具体的用户信息等。

public class DataPO implements Serializable {
    //xxx信息
    private String monitorInfo;
    //xxx活动
    private String synchroActivityResult;
    //客户xxx信息
    private List<VehicleInfoPO> vehicleInfoPOS;
    //xxx信息
    private List<ComplaintInfoPO> complaintInfoPOS;
    //xxx检查结果
    private List<CheckResultPO> checkResultPOS;
    //本月任务
    private List<MonthTaskPO> monthTaskPOS;

    public String getMonitorInfo() {
        return monitorInfo;
    }

    public void setMonitorInfo(String monitorInfo) {
        this.monitorInfo = monitorInfo;
    }

    public String getSynchroActivityResult() {
        return synchroActivityResult;
    }

    public void setSynchroActivityResult(String synchroActivityResult) {
        this.synchroActivityResult = synchroActivityResult;
    }

    public List<VehicleInfoPO> getVehicleInfoPOS() {
        return vehicleInfoPOS;
    }

    public void setVehicleInfoPOS(List<VehicleInfoPO> vehicleInfoPOS) {
        this.vehicleInfoPOS = vehicleInfoPOS;
    }

    public List<ComplaintInfoPO> getComplaintInfoPOS() {
        return complaintInfoPOS;
    }

    public void setComplaintInfoPOS(List<ComplaintInfoPO> complaintInfoPOS) {
        this.complaintInfoPOS = complaintInfoPOS;
    }

    public List<CheckResultPO> getCheckResultPOS() {
        return checkResultPOS;
    }

    public void setCheckResultPOS(List<CheckResultPO> checkResultPOS) {
        this.checkResultPOS = checkResultPOS;
    }

    public List<MonthTaskPO> getMonthTaskPOS() {
        return monthTaskPOS;
    }

    public void setMonthTaskPOS(List<MonthTaskPO> monthTaskPOS) {
        this.monthTaskPOS = monthTaskPOS;
    }

    public DataPO() {
    }


}

3.从DataPO类中我们就能看到具体的要set的值,这里只举一个例子,

public class CheckResultPO implements Serializable  {
    //xxxx大类
    private String ident;
    //xxxx名称
    private String contentName;
    //状态
    private String preStatusName;
    //备注
    private String remark;

    public String getIdent() {
        return ident;
    }

    public void setIdent(String ident) {
        this.ident = ident;
    }

    public String getContentName() {
        return contentName;
    }

    public void setContentName(String contentName) {
        this.contentName = contentName;
    }

    public String getPreStatusName() {
        return preStatusName;
    }

    public void setPreStatusName(String preStatusName) {
        this.preStatusName = preStatusName;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

}

4.这个时候,看一下,json对象是如何封装的,大概就是下面这个样子,

ResultInfoP0 resultInfoP0 = new ResultInfoP0();
List<VehicleInfoPO> listVehicle = queryVehicleInfo(conn, atx, vin, license, entityCode);
            if (listVehicle != null && listVehicle.size() > 0) {
                license = listVehicle.get(0).getLicense();
            }
            //xxxx记录
            List<ComplaintInfoPO> listComplaint = querylistComplaint(conn, atx, vin, license, entityCode);
            //xxxx检查
            List<CheckResultPO> listCheckResult = queryCheckResult(conn, atx, vin, license, entityCode);
            //xxxxx信息
            String monitorInfo = queryMonitorInfo(conn, atx, vin, license, entityCode);
            //xxxx本月任务
            List<MonthTaskPO> listMonthTask = queryMonthTask(conn, atx, vin, license, entityCode);
            //xxxxx活动
            String synchroActivityResult = querySynchroActivity(conn, atx, vin, license, entityCode);

            //返回数据
            DataPO data = new DataPO();
            data.setVehicleInfoPOS(listVehicle);
            data.setComplaintInfoPOS(listComplaint);
            data.setCheckResultPOS(listCheckResult);
            data.setMonitorInfo(monitorInfo);
            data.setMonthTaskPOS(listMonthTask);
            data.setSynchroActivityResult(synchroActivityResult);
            //定义成功类型
            resultInfoP0.setCode(200);
            resultInfoP0.setMsg("访问成功");
            resultInfoP0.setData(data);
            res = JSONObject.toJSONString(resultInfoP0);
            logger.debug("请求返回数据*********************" + res);

5.打印的结果如下,大概就是这个样子的。

{"code":200,"data":{"checkResultPOS":[],"complaintInfoPOS":[],"monitorInfo":"该车已经673天未进厂!;","monthTaskPOS":[],"synchroActivityResult":"","vehicleInfoPOS":[{"lastMaintenanceDate":1551777343000,"level":"","license":"川Axxxxx","mileage":"12xx.00","mobile":"无","model":"VLC701","modelName":"新福克斯三厢 1.6MT","ownerNo":"xxxxxxx","series":"VLC7","seriesName":"新福克斯三厢"}]},"msg":"访问成功"}

参考网址:Fastjson封装使用(二)

发布了125 篇原创文章 · 获赞 27 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/weixin_39428938/article/details/103054284