1. 程式人生 > >自定義響應結構 AjaxResult()

自定義響應結構 AjaxResult()

line amp rac object tco style text ria version

package com.dsj.gdbd.utils.ajax;

import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.io.Serializable;
import java.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 implements Serializable { // 定義jackson對象 private static final ObjectMapper MAPPER = new ObjectMapper(); /*** * 響應業務狀態 */ private Integer status; /*** * 響應消息 */ private String msg;
/*** * 響應中的數據 */ private Object data; public static AjaxResult build(Integer status, String msg, Object data) { return new AjaxResult(status, msg, data); } public static AjaxResult ok(Object data) { return new AjaxResult(data); } public
static AjaxResult ok() { return new AjaxResult(null); } public AjaxResult() { } public static AjaxResult build(Integer status, String msg) { return new AjaxResult(status, msg, null); } public AjaxResult(Integer status, String msg, Object data) { this.status = status; this.msg = msg; this.data = data; } public AjaxResult(Object data) { this.status = 200; this.msg = "OK"; this.data = data; } // public Boolean isOK() { // return this.status == 200; // } public Integer getStatus() { return status; } public void setStatus(Integer status) { this.status = status; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } public Object getData() { return data; } public void setData(Object data) { this.data = data; } /** * 將json結果集轉化為TaotaoResult對象 * * @param jsonData json數據 * @param clazz 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對象的轉化 * * @param json * @return */ public static AjaxResult format(String json) { try { return MAPPER.readValue(json, AjaxResult.class); } catch (Exception e) { e.printStackTrace(); } return null; } /** * Object是集合轉化 * * @param jsonData json數據 * @param clazz 集合中的類型 * @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; } } }

自定義響應結構 AjaxResult()