1.JsonResult 封装格式
/**
* 封装统一格式的数据返回结构
* 由于封装的 JSON 数据的类型不确定,所以在定义统一的 JSON 结构时,
* 我们需要用到泛型。统一的 JSON 结构中属性包括数据、状态码、提示信息即可,
* 构造方法可以根据实际业务需求做相应的添加即可,
* 一般来说,应该有默认的返回结构,也应该有用户指定的返回结构。
* @param <T>
*/
public class JsonResult<T> {
private T data;
private String code;
private String msg;
/**
* 若没有数据返回,默认状态码为0,提示信息为:操作成功!
*/
public JsonResult() {
this.code = "0";
this.msg = "操作成功!";
}
/**
* 若没有数据返回,可以人为指定状态码和提示信息
* @param code
* @param msg
*/
public JsonResult(String code, String msg) {
this.code = code;
this.msg = msg;
}
/**
* 有数据返回时,状态码为0,默认提示信息为:操作成功!
* @param data
*/
public JsonResult(T data) {
this.data = data;
this.code = "0";
this.msg = "操作成功!";
}
/**
* 有数据返回,状态码为0,人为指定提示信息
* @param data
* @param msg
*/
public JsonResult(T data, String msg) {
this.data = data;
this.code = "0";
this.msg = msg;
}
// 省略get和set方法
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
2.测试controller
@RestController
@RequestMapping("/jsonresult")
public class JsonResultController {
@RequestMapping("/user")
public JsonResult<User> getUser() {
User user = new User(1, "laomi", "123456");
return new JsonResult<>(user);
}
@RequestMapping("/list")
public JsonResult<List> getUserList() {
List<User> userList = new ArrayList<>();
User user1 = new User(1, "laomi", "123456");
User user2 = new User(2, "test", "123456");
userList.add(user1);
userList.add(user2);
return new JsonResult<>(userList, "获取用户信息成功");
}
@RequestMapping("/map")
public JsonResult<Map> getMap() {
Map<String, Object> map = new HashMap<>(3);
User user = new User(1, "laomi", null);
map.put("作者信息", user);
map.put("博客地址", "http://blog.laomi.com");
map.put("CSDN地址", null);
map.put("粉丝数量", 2400);
return new JsonResult<>(map);
}
}
测试IP:http://localhost:8080/jsonresult/user
效果: