前言
最近開發的Java Web系統中涉及到爲移動端寫接口,需要返回JSON數據,而移動端用的是API Cloud開發的,調用它上面的電話插件時要按照他執行的格式。
首先看一下他要求的格式:
[
{
"employee_id" : 191,
"remark" : "王科研",
"phonetic" : "WangKeYang", //名字的拼音
"namephonetic" : "WangKeYang88",
"position" : "研發",
"dept_id" : "002000",
"isdeleted" : "N",
"tags" : "",
"dept_name" : "創達集團",
"isremark" : 1,
"phones" : [{
"phone" : "13366148872",
"type" : "1"
}]
},
{
"employee_id" : 193,
"remark" : "秋風疾",
"phonetic" : "WangKeYang88", //名字的拼音
"namephonetic" : "WangKeYang88",
"position" : "研發",
"dept_id" : "002000",
"isdeleted" : "N",
"tags" : "",
"dept_name" : "創達集團",
"isremark" : 1,
"phones" : [{
"phone" : "13366148872",
"type" : "1"
}]
}
]
發現phones部分有嵌套的json,而我們之前查出來的數據格式爲:
所以需要嚴格按照格式進行修改.
處理步驟
首先說一下用到的一個實體類
public class AppStaff {
private String STAFF_ID; //ID
private String NAME; //姓名
private String BIANMA; //編碼-工號
private String TEL; //電話
private String DEPARTMENT; //所屬部門
/* getter/setter方法省略不寫....*/
}
然後就要根據現在有的幾個字段,查詢出來改造格式變成需要的json。
處理方法爲:
@RequestMapping(value="/listForStaff" ,produces="application/json;charset=UTF-8")
@ResponseBody
public Object listForStaff() throws Exception{
JSONArray arr=new JSONArray();//所有員工json信息總的數組
List<PageData> pds=staffService.returnStaffToApp(new Page()); //到數據庫中查詢所有的員工信息
Iterator iterator=pds.iterator();
while (iterator.hasNext()){ //迭代器遍歷List
AppStaff p= (AppStaff) iterator.next(); //強制類型轉化
JSONObject jsonObject1=new JSONObject();
jsonObject1.put("employee_id",p.getSTAFF_ID());
jsonObject1.put("remark",p.getNAME());
jsonObject1.put("phonetic",p.getNAME());
jsonObject1.put("namephonetic",p.getNAME());
jsonObject1.put("position",p.getDEPARTMENT());
jsonObject1.put("dept_id",p.getDEPARTMENT());
jsonObject1.put("isdeleted","N");
jsonObject1.put("tags","");
jsonObject1.put("dept_name",p.getDEPARTMENT());
jsonObject1.put("isremark",1);
JSONArray arr11=new JSONArray();//每個人的電話信息數組
JSONObject jsonObject11=new JSONObject();
jsonObject11.put("phone",p.getTEL());
jsonObject11.put("type","1");
arr11.add(jsonObject11); //電話信息數組
jsonObject1.put("phones",arr11);//壓入電話信息數組
arr.add(jsonObject1);//整個員工信息加到數組
}
return arr;
}
}