后端返回值以json的格式返回,前端以json格式接收


以隨便一個類為例子:這個例子是查詢企業主營類別前5事項

一、以json數組的格式返回到前端中

(1)后端將結果綁定到param中,然后將結果以為json數組的格式返回到前端

/**
     * 查詢企業主營類別前5事項
     * @param request
     * @param response
     * @param config
     * @throws Exception
     * @author hongxy
     * 2017年6月1日下午2:21:14
     */
    public void getEnterpriseMainCategory(HttpServletRequest request,
            HttpServletResponse response, ServletConfig config) throws Exception {
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        response.setContentType("text/html;charset=UTF-8");  
        Map param = new HashMap();
        PrintWriter wirte = null; 
        //獲得企業名稱
        String custName = RequestUtil.getString(request, "companyName");
        //判斷企業名稱是否為空
        if (StringUtils.isBlank(custName)) {
            param.put("status", "400");
            param.put("desc", "企業名稱為空!");
        } else {
            workService = new WorkServiceImpl();
            //查詢是否存在該企業
            Map enterpriseInfo = workService.getEnterpriseInfoByCustName(custName);
            //不存在該企業
            if (enterpriseInfo == null) {
                param.put("status", "400");
                param.put("desc", "企業名稱不存在!");
            } else {//存在該企業,查詢企業主營類別前5事項
                //根據企業名稱查詢出該企業近一年的已辦事項
                String approveTypeList = workService.getEnterpriseWorksInfoByCustName(custName);
                //根據行業類別查詢企業名稱
                String custNameListByIndustry  = workService.getEnterpriseNameByIndustry((String) enterpriseInfo.get("INDUSTRY"));
                //查詢企業主營類別前5事項
                List mainProjectList = workService.getApproveInfoList(custNameListByIndustry,approveTypeList);
                param.put("status", "200");
                param.put("desc", "處理成功");
                param.put("data", mainProjectList);
            }
        }
      //聲明JSONArray對象並輸入JSON字符串
          JSONArray array = JSONArray.fromObject(param); 
          wirte = response.getWriter(); 
          wirte.print(array); 
    }

(2)前端先將接受到的數據轉換成json格式,不然就不能獲取里面的值了,因為Ajax返回的值默認是字符串類型

將接收到的值轉換成json格式的核心代碼:(具體的取值可以輸出到前端控制台,這樣方便取值)

var msg=jQuery.parseJSON(msg);
$.ajax({
       url: '${path.appMain}?service=work&func=getEnterpriseMainCategory',
       async: false,
       type: 'POST',
       data: {
           companyName:companyName
       },
       success: function(msg){
               var msg=jQuery.parseJSON(msg);
               var mainProjectList = "";
              mainProjectList +="<li>與您的“主營項目類別”相同的企業,辦理最多的事項有:</li>"
              for (var i = 0; i < msg[0].data.length; i++) {
               mainProjectList += "<li><a href='javascript:void(0);'>"+
                                (i+1) + "." + msg[0].data[i].approveName +
                                "</a></li>";
            }
            $('#mainProjectList').html(mainProjectList);
        }
});

 二、以json的格式返回到前端中(常用)

(1)后端將結果綁定到data中,然后將結果以為json的格式返回到前端

     /**
     * 查詢企業主營類別前5事項
     * @param request
     * @param response
     * @param config
     * @throws Exception
     * @author hongxy
     * 2017年6月1日下午2:21:14
     */
    public void getEnterpriseMainCategory(HttpServletRequest request,
            HttpServletResponse response, ServletConfig config) throws Exception {
        request.setCharacterEncoding("UTF-8");
        JSONObject json = new JSONObject();
        Map param = new HashMap();
        //獲得企業名稱
        String custName = RequestUtil.getString(request, "companyName");
          //判斷企業名稱是否為空
          if (StringUtils.isBlank(custName)) {
              json.put("status", "400");
              json.put("desc", "企業名稱為空!");
          } else {
              workService = new WorkServiceImpl();
              //查詢是否存在該企業
              Map enterpriseInfo = workService.getEnterpriseInfoByCustName(custName);
            //不存在該企業
            if (enterpriseInfo == null) {
                  json.put("status", "400");
                  json.put("desc", "企業名稱不存在!");
            } else {//存在該企業,查詢企業主營類別前5事項
                //根據企業名稱查詢出該企業近一年的已辦事項
                String approveTypeList = workService.getEnterpriseWorksInfoByCustName(custName);
                //根據行業類別查詢企業名稱
                String custNameListByIndustry  = workService.getEnterpriseNameByIndustry((String) enterpriseInfo.get("INDUSTRY"));
                //查詢企業主營類別前5事項
                List mainProjectList = workService.getApproveInfoList(custNameListByIndustry,approveTypeList);
                  json.put("status", "200");
                  json.put("desc", "處理成功");
                  json.put("data", mainProjectList);
            }
          }
          // 響應請求
         SysInfo.responseJsonMsg(response, json.toString());
    }

(2)前端接收json數據並在前端進行顯示

$.ajax({
       url: '${path.appMain}?service=work&func=getEnterpriseMainCategory',
       async: false,
       type: 'POST',
       data: {
           companyName:companyName
       },
       success: function(msg){
               var mainProjectList = "";
            mainProjectList +="<li>與您的“主營項目類別”相同的企業,辦理最多的事項有:</li>"
            if(msg.data.length == 0){
                mainProjectList += "<li>查找不到相關的事項!</li>";
            } else{
                for (var i = 0; i < msg.data.length; i++) {
                    mainProjectList += "<li><a href='javascript:void(0);'>"+
                                (i+1) + "." + msg.data[i].approveName +
                                "</a></li>";
                }    
            }
            $('#mainProjectList').html(mainProjectList);
        }
     });


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM