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;
            }
        }
    
    }
  • 相关阅读:
    vue路由
    vue-cli目录结构介绍
    andriodiphone视频禁止全屏播放
    JS判断Android、iOS或浏览器的多种方法(四种方法)
    vue中移动端自适应方案
    移动端视频不兼容
    vue之router-link
    移动端网页开发注意点
    AWS EC2服务器的HTTPS负载均衡器配置过程
    Kubernetes概念介绍和v1版本部署过程
  • 原文地址:https://www.cnblogs.com/mlq2017/p/10260249.html
Copyright © 2011-2022 走看看