本節學會使用如何將數據改為JSON,傳送到前台。
為什么用JSON?
當Android,IOS, 瀏覽器向服務器發送請求數據的時候,若后台返回的是JSON數據,這三者均易解析數據,體現了平台無關性。
使用步驟:
1 加入所需要的jar包依賴:
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind --> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.8.8.1</version> </dependency>
2 后台代碼改為接口的形式,@ResponseBody即可以將數據變為JSON串的形式:
/** * 分頁查詢 * @param pageNo 頁碼 * @return */ //返回JSON @RequestMapping(value = {"/emp/list"}, method = {RequestMethod.GET}) @ResponseBody public PageInfo getEmpList(@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo){ PageHelper.startPage(pageNo, 5); List<Employee> employeeList = employeeService.getAll(); PageInfo pageInfo = new PageInfo(employeeList, 5); return pageInfo; }
返回結果如下:
{"pageNum":5,"pageSize":5,"size":5,"startRow":21,"endRow":25,"total":1001,"pages":201,
"list":[{"empId":21,"empName":"c36ab","gender":"M","eamil":"c36ab@qq.com","dId":1,"department":{"deptId":1,"deptName":"開發部"}},
{"empId":22,"empName":"d36f0","gender":"M","eamil":"d36f0@qq.com","dId":1,"department":{"deptId":1,"deptName":"開發部"}},
{"empId":23,"empName":"8d86c","gender":"M","eamil":"8d86c@qq.com","dId":1,"department":{"deptId":1,"deptName":"開發部"}},
{"empId":24,"empName":"21049","gender":"M","eamil":"21049@qq.com","dId":1,"department":{"deptId":1,"deptName":"開發部"}},
{"empId":25,"empName":"df993","gender":"M","eamil":"df993@qq.com","dId":1,"department":{"deptId":1,"deptName":"開發部"}}],
"prePage":4,"nextPage":6,"isFirstPage":false,"isLastPage":false,"hasPreviousPage":true,"hasNextPage":true,"navigatePages":5,"navigatepageNums":[3,4,5,6,7],"navigateFirstPage":3,"navigateLastPage":7,"firstPage":3,"lastPage":7}
3 優化,帶有返回信息的代碼:
信息類:Msg.java
package com.wgs.domain; import java.util.HashMap; import java.util.Map; /** * Created by GenshenWang.nomico on 2017/6/9. */ public class Msg { private int code; private String msg; private Map<String, Object> extendInfo = new HashMap<>(); public static Msg success(){ Msg result = new Msg(); result.setCode(100); result.setMsg("操作成功"); return result; } public static Msg fail(){ Msg result = new Msg(); result.setCode(200); result.setMsg("操作失敗"); return result; } public Msg add(String key, Object value){ this.getExtendInfo().put(key, value); return this; } 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 Map<String, Object> getExtendInfo() { return extendInfo; } public void setExtendInfo(Map<String, Object> extendInfo) { this.extendInfo = extendInfo; } }
接口:
//返回JSON @RequestMapping(value = {"/emp/list"}, method = {RequestMethod.GET}) @ResponseBody public Msg getEmpListWithJson(@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo){ PageHelper.startPage(pageNo, 5); List<Employee> employeeList = employeeService.getAll(); PageInfo pageInfo = new PageInfo(employeeList, 5); return Msg.success().add("pageInfo", pageInfo); }
返回結果:
{
"code":100,
"msg":"操作成功",
"extendInfo":{
"pageInfo":{"pageNum":5,"pageSize":5,"size":5,"startRow":21,"endRow":25,"total":1001,"pages":201,
"list":[{"empId":21,"empName":"c36ab","gender":"M","eamil":"c36ab@qq.com","dId":1,"department":{"deptId":1,"deptName":"開發部"}},{"empId":22,"empName":"d36f0","gender":"M","eamil":"d36f0@qq.com","dId":1,"department":{"deptId":1,"deptName":"開發部"}},{"empId":23,"empName":"8d86c","gender":"M","eamil":"8d86c@qq.com","dId":1,"department":{"deptId":1,"deptName":"開發部"}},{"empId":24,"empName":"21049","gender":"M","eamil":"21049@qq.com","dId":1,"department":{"deptId":1,"deptName":"開發部"}},{"empId":25,"empName":"df993","gender":"M","eamil":"df993@qq.com","dId":1,"department":{"deptId":1,"deptName":"開發部"}}],"prePage":4,"nextPage":6,"isFirstPage":false,"isLastPage":false,"hasPreviousPage":true,"hasNextPage":true,"navigatePages":5,"navigatepageNums":[3,4,5,6,7],"navigateFirstPage":3,"navigateLastPage":7,"firstPage":3,"lastPage":7}}}