package com.eduoinfo.finances.bank.core.entity;
import java.io.Serializable;
/**
* Response JsonResult for RESTful <br>
* 封装 返回Json 格式数据
*
* @author StarZou
* @since 2014年5月26日 上午10:51:46
**/
public class JsonResult<T> implements Serializable {
private static final long serialVersionUID = -4699713095477151086L;
/**
* 数据
*/
private T data;
/**
* 信息
*/
private String message;
/**
* 是否成功
*/
private boolean success;
public Object getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public boolean isSuccess() {
return success;
}
public void setSuccess(boolean success) {
this.success = success;
}
public JsonResult() {
super();
}
public JsonResult(T data, String message, boolean success) {
this.data = data;
this.message = message;
this.success = success;
}
public JsonResult(T data, String message) {
this.data = data;
this.message = message;
this.success = true;
}
public JsonResult(T data) {
this.data = data;
this.success = true;
}
}
在spring Controller 中使用
/**
* 测试 spring mvc 返回 json , 封装 Json 格式数据, 减少 类型转换
*
* @return
*/
@RequestMapping("/json")
@ResponseBody
public JsonResult<Object[]> returnJson() {
// 实际情况 下 String,可能是一个 自定义的Java 类,比如 User , 通常是在 数据库查询
List<String> data = new ArrayList<>();
Set<String> data2 = new HashSet<>();
Map<String, String> data3 = new HashMap<>();
int i = 0;
while (i < 10) {
String value = "data-" + (++i);
data.add(value);
data2.add(value);
data3.put(value, value);
}
// 组装 查询的 结果 , 添加消息 和 是否成功的标识
JsonResult<List<String>> jsonResult = new JsonResult<>(data, "This is a message.", true);
JsonResult<Set<String>> jsonResult2 = new JsonResult<>(data2, "This is a message.", true);
JsonResult<Map<String, String>> jsonResult3 = new JsonResult<>(data3, "This is a message.", true);
// 复杂一点的 封装
Object[] objs = { jsonResult, jsonResult2, jsonResult3 };
JsonResult<Object[]> jsonObj = new JsonResult<Object[]>(objs);
return jsonObj;
}