zoukankan      html  css  js  c++  java
  • 自定义响应结构 AjaxResult()

    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;
            }
        }
    
    }
  • 相关阅读:
    DOM练习2动态增删表格行
    JS
    JS动态获取当前时间,并写到指定的区域
    DOM练习3选项批量移动
    JS练习显示隐藏图像
    修改MyEclipse默认工作路径
    Aptana 安装与配置
    DOM入门基本概念
    SecureCRT终端显示gcc编译错误提示乱码问题
    使用静态成员函数的一个错误。
  • 原文地址:https://www.cnblogs.com/mlq2017/p/10260249.html
Copyright © 2011-2022 走看看