分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

自定义响应结构 AjaxResult()

发布时间:2023-09-06 02:29责任编辑:沈小雨关键词:Ajax
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()

原文地址:https://www.cnblogs.com/mlq2017/p/10260249.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved