利用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封裝使用(二)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章