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