Java中使用JSONArray時實現嵌套

前言

最近開發的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;
    }

}

結果

這裏寫圖片描述

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