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