packagecom.dsj.gdbd.utils.ajax;importcom.fasterxml.jackson.databind.JsonNode;importcom.fasterxml.jackson.databind.ObjectMapper;importjava.io.Serializable;importjava.util.List;/*** @Description: 自定义响应结构
* @Author: DGBD
* @CreateDate: 2018/12/21 16:27
* @UpdateUser: yc
* @UpdateDate: 2018/12/21 16:27
* @UpdateRemark: 修改内容
* @博客地址:https://www.cnblogs.com/mlq2017/* @Version: 1.0*/
public class AjaxResult implementsSerializable {//定义jackson对象
private static final ObjectMapper MAPPER = newObjectMapper();/***
* 响应业务状态*/
privateInteger status;/***
* 响应消息*/
privateString msg;/***
* 响应中的数据*/
privateObject data;public staticAjaxResult build(Integer status, String msg, Object data) {return newAjaxResult(status, msg, data);
}public staticAjaxResult ok(Object data) {return newAjaxResult(data);
}public staticAjaxResult ok() {return new AjaxResult(null);
}publicAjaxResult() {
}public staticAjaxResult build(Integer status, String msg) {return new AjaxResult(status, msg, null);
}publicAjaxResult(Integer status, String msg, Object data) {this.status =status;this.msg =msg;this.data =data;
}publicAjaxResult(Object data) {this.status = 200;this.msg = "OK";this.data =data;
}//public Boolean isOK() {//return this.status == 200;//}
publicInteger getStatus() {returnstatus;
}public voidsetStatus(Integer status) {this.status =status;
}publicString getMsg() {returnmsg;
}public voidsetMsg(String msg) {this.msg =msg;
}publicObject getData() {returndata;
}public voidsetData(Object data) {this.data =data;
}/*** 将json结果集转化为TaotaoResult对象
*
*@paramjsonData json数据
*@paramclazz TaotaoResult中的object类型
*@return
*/
public static AjaxResult formatToPojo(String jsonData, Class>clazz) {try{if (clazz == null) {return MAPPER.readValue(jsonData, AjaxResult.class);
}
JsonNode jsonNode=MAPPER.readTree(jsonData);
JsonNode data= jsonNode.get("data");
Object obj= null;if (clazz != null) {if(data.isObject()) {
obj=MAPPER.readValue(data.traverse(), clazz);
}else if(data.isTextual()) {
obj=MAPPER.readValue(data.asText(), clazz);
}
}return build(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj);
}catch(Exception e) {return null;
}
}/*** 没有object对象的转化
*
*@paramjson
*@return
*/
public staticAjaxResult format(String json) {try{return MAPPER.readValue(json, AjaxResult.class);
}catch(Exception e) {
e.printStackTrace();
}return null;
}/*** Object是集合转化
*
*@paramjsonData json数据
*@paramclazz 集合中的类型
*@return
*/
public static AjaxResult formatToList(String jsonData, Class>clazz) {try{
JsonNode jsonNode=MAPPER.readTree(jsonData);
JsonNode data= jsonNode.get("data");
Object obj= null;if (data.isArray() && data.size() > 0) {
obj=MAPPER.readValue(data.traverse(),
MAPPER.getTypeFactory().constructCollectionType(List.class, clazz));
}return build(jsonNode.get("status").intValue(), jsonNode.get("msg").asText(), obj);
}catch(Exception e) {return null;
}
}
}