Java工具类:返回结果集Result工具类以及JSONUtil 您所在的位置:网站首页 java常用import的包 Java工具类:返回结果集Result工具类以及JSONUtil

Java工具类:返回结果集Result工具类以及JSONUtil

2023-07-06 02:57| 来源: 网络整理| 查看: 265

前后端分离中,便于统一返回给前端的格式 ,用于开发返回数据封装结果集Result工具类

import java.io.Serializable; import java.util.List; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; /** * json结果集 */ public class Result implements Serializable { // 定义jackson对象 private static final ObjectMapper MAPPER = new ObjectMapper(); // 响应业务状态 private Integer status; // 响应消息 private String msg; // 响应中的数据 private Object data; public static Result build(Integer status, String msg, Object data) { return new Result(status, msg, data); } public static Result ok(Object data) { return new Result(data); } public static Result ok() { return new Result(null); } public Result() { } public static Result build(Integer status, String msg) { return new Result(status, msg, null); } public Result(Integer status, String msg, Object data) { this.status = status; this.msg = msg; this.data = data; } public Result(Object data) { this.status = 200; this.msg = "OK"; this.data = data; } 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结果集转化为Result对象 * * @param jsonData * json数据 传的是Result的对象的Json字符串 * @param clazz * TaotaoResult中的object类型 * @return */ public static Result formatToPojo(String jsonData, Class clazz) { try { if (clazz == null) { return MAPPER.readValue(jsonData, Result.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 Result format(String json) { try { return MAPPER.readValue(json, Result.class); } catch (Exception e) { e.printStackTrace(); } return null; } /** * Object是集合转化 * * @param jsonData 传的是Result的对象的Json字符串 * json数据 * @param clazz * 集合中的类型 * @return */ public static Result 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; } } }

 

附加JSONUtil

import java.util.List; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.JavaType; import com.fasterxml.jackson.databind.ObjectMapper; /** * 自定义响应结构 */ public class JsonUtil { // 定义jackson对象 private static final ObjectMapper MAPPER = new ObjectMapper(); /** * 将对象转换成json字符串。 *

* Title: pojoToJson *

*

* Description: *

* * @param data * @return */ public static String objectToJson(Object data) { try { String string = MAPPER.writeValueAsString(data); return string; } catch (JsonProcessingException e) { e.printStackTrace(); } return null; } /** * 将json结果集转化为对象 * * @param jsonData * json数据 * @param clazz * 对象中的object类型 * @return */ public static T jsonToPojo(String jsonData, Class beanType) { try { T t = MAPPER.readValue(jsonData, beanType); return t; } catch (Exception e) { e.printStackTrace(); } return null; } /** * 将json数据转换成pojo对象list * Title: jsonToList * Description: * * @param jsonData * @param beanType * @return */ public static List jsonToList(String jsonData, Class beanType) { JavaType javaType = MAPPER.getTypeFactory().constructParametricType(List.class, beanType); try { List list = MAPPER.readValue(jsonData, javaType); return list; } catch (Exception e) { e.printStackTrace(); } return null; } }

 

 

有什么问题可以评论或者私信我,每日在线解(LIAO)疑(SAO)。

我是大誌,一位准备996的卑微码农🐶,觉得好用记得点赞收藏!!!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有