1. import org.codehaus.jackson.annotate.JsonIgnore;
  2. import org.codehaus.jackson.map.annotate.JsonSerialize;
  3.  
  4. import java.io.Serializable;
  5. @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
  6. //保证序列化json的时候,如果是null的对象,key也会消失
  7. public class ServiceResponse<T> implements Serializable {
  8. private int status; //结果状态值
  9. private String msg; //结果信息
  10. private T data; //结果数据
  11.  
  12. private ServiceResponse(int status){
  13. this.status = status;
  14. }
  15.  
  16. private ServiceResponse(int status, T data){
  17. this.status = status;
  18. this.data = data;
  19. }
  20.  
  21. private ServiceResponse(int status, String msg, T data){
  22. this.status = status;
  23. this.msg = msg;
  24. this.data = data;
  25. }
  26.  
  27. private ServiceResponse(int status, String msg){
  28. this.status = status;
  29. this.msg = msg;
  30. }
  31.  
  32. @JsonIgnore //让其不在json序列化中
  33. public boolean isSuccess(){
  34. return this.status == ResponseCode.SUCCESS.getCode();
  35. }
  36.  
  37. public int getStatus() {
  38. return status;
  39. }
  40.  
  41. public String getMsg() {
  42. return msg;
  43. }
  44.  
  45. public T getData() {
  46. return data;
  47. }
  48.  
  49. public static <T> ServiceResponse<T> createBySuccess(){
  50. return new ServiceResponse<T>(ResponseCode.SUCCESS.getCode());
  51. }
  52.  
  53. public static <T> ServiceResponse<T> createBySuccessMessage(String msg){
  54. return new ServiceResponse<T>(ResponseCode.SUCCESS.getCode(), msg);
  55. }
  56.  
  57. public static <T> ServiceResponse<T> createBySuccess(T data){
  58. return new ServiceResponse<T>(ResponseCode.SUCCESS.getCode(), data);
  59. }
  60.  
  61. public static <T> ServiceResponse<T> createBySuccess(String msg, T data){
  62. return new ServiceResponse<T>(ResponseCode.SUCCESS.getCode(), msg, data);
  63. }
  64.  
  65. public static <T> ServiceResponse<T> createByError(){
  66. return new ServiceResponse<T>(ResponseCode.ERROR.getCode(), ResponseCode.ERROR.getDesc());
  67. }
  68.  
  69. public static <T> ServiceResponse<T> createByErrorMessage(String errorMessage){
  70. return new ServiceResponse<T>(ResponseCode.ERROR.getCode(), errorMessage);
  71. }
  72.  
  73. public static <T> ServiceResponse<T> createByErrorCodeMessage(int errorCode, String errorMessage){
  74. return new ServiceResponse<T>(errorCode, errorMessage);
  75. }
  76. }

使用到的枚举值

  1. /**
  2. * 状态枚举值
  3. */
  4. public enum ResponseCode {
  5.  
  6. SUCCESS(0,"SUCCESS"),
  7. ERROR(1,"ERROR"),
  8. NEED_LOGIN(10,"NEED_LOGIN"),
  9. ILLEGAL_ARGUMENT(2,"ILLEGAL_ARGUMENT");
  10. private final int code;
  11. private final String desc;
  12.  
  13. ResponseCode(int code, String desc){
  14. this.code = code;
  15. this.desc = desc;
  16. }
  17. public int getCode() {
  18. return code;
  19. }
  20. public String getDesc() {
  21. return desc;
  22. }
  23. }

统一封装json返回结果的更多相关文章

  1. 编写JsonResult封装JSON返回值(模板参阅)

    编写JsonResult封装JSON返回值 package cn.tedu.note.util; import java.io.Serializable; import cn.tedu.note.se ...

  2. FastAPI 学习之路(五十九)封装统一的json返回处理工具

    这之前的接口,我们返回的格式都是每个接口异常返回的数据格式都会不一样,我们处理起来没有那么方便,我们可以封装一个统一的json处理. 那么我们看下如何来实现呢 from fastapi import ...

  3. 基于SqlSugar的开发框架循序渐进介绍(10)-- 利用axios组件的封装,实现对后端API数据的访问和基类的统一封装处理

    在SqlSugar的开发框架的后端,我们基于Web API的封装了统一的返回结果,使得WebAPI的接口返回值更加简洁,而在前端,我们也需要统一对返回的结果进行解析,并获取和Web API接口对应的数 ...

  4. 解决spring boot中rest接口404,500等错误返回统一的json格式

    在开发rest接口时,我们往往会定义统一的返回格式,列如: { "status": true, "code": 200, "message" ...

  5. SpringBoot之封装json对象返回json数据

    /** * @description:封装json对象,所有返回结果都使用它 **/ public class Result<T> { private int code;// 业务自定义状 ...

  6. SpringBoot接口 - 如何优雅的对接口返回内容统一封装?

    在以SpringBoot开发Restful接口时,统一返回方便前端进行开发和封装,以及出现时给出响应编码和信息.@pdai SpringBoot接口 - 如何优雅的对接口返回内容统一封装? RESTf ...

  7. ASP.NET Core 一个Json返回类

    很多时候(如Ajax)我们需要从Web应用中得到标准的反馈以便进行数据分析. 为此,我将各类返回标准化封装,客户端将统一得到 JSON:[{"status":200,"m ...

  8. 统一的Json组件和csv下载组件

    java-web-common java-web-common Json组件 目标和用途 规范Json接口格式 Controller中一律返回Java object,组件将自动转换数据格式,满足Jso ...

  9. ASP.NET Core 统一异常处理和返回

    业务场景: 业务需求要求,需要对 ASP.NET Core 异常进行统一处理和返回,比如出现 500 错误和业务服务错误进行不同的处理和返回. 具体实现: using Microsoft.AspNet ...

随机推荐

  1. redis提权

    介绍:Redis是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.它通常被称为数据结构服务器,因为值(va ...

  2. python - 对接微信支付(PC)和 注意点

    注:本文仅提供 pc 端微信扫码支付(模式一)的示例代码. 关于对接过程中遇到的问题总结在本文最下方. 参考: 官方文档,    https://blog.csdn.net/lm_is_dc/arti ...

  3. jeecg uedit 自定义图片上传路径

    jeecg uedit 图片上传配置自定义物理路径,简单描述:我们知道 jeecg 中使用的 uedit 默认图片上传路径为 "当前项目\plug-in\ueditor\jsp\upload ...

  4. 如何用okr做好目标规划

    有朋友和我吐槽公司总是规划一个个振奋人心的目标,让大家对工作充满了热情.然而好的开头却缺少追踪反馈没有好的结尾,那些大家所渴望达成的目标随着时间的流逝便逐渐没有了音信,不再有人主动提起,团队成员迎来的 ...

  5. linux命令之------快捷键说明

    linux快捷键说明 (1)命令或目录补齐:Tab (2)遍历历史记录:history 上移:ctrl+p,下移:ctrl+n (3)光标移动 左移:ctrl+b:右移:ctrl+f:移到首部:ctr ...

  6. bluestart

    # Add nano as default editorexport EDITOR=nanoexport PULSE_LATENCY_MSEC=60 alias ls='ls --color=auto ...

  7. layui如何自定义弹出层关闭事件

    在某些业务场景下,我们需要自定义弹出层关闭事件,代码示例如下: layui.use('layer', function () { var layer = layui.layer; layer.open ...

  8. css3学习之--transition属性(过渡)

    一.理解transition属性 W3C标准中对CSS3的transition是这样描述的: CSS的transition允许CSS的属性值在一定的时间区间内平滑地过渡.这种效果可以在鼠标单击,获得焦 ...

  9. jquery数组倒序

    倒叙前:var mem = [1, 2, 3]: 倒序后:var men1=[3,2,1]: <script type="text/javascript"> $(fun ...

  10. SQL优化:一些简单的又实用的SQL优化方案【转】

    面试过程中,面试官有极高的频率会问道数据库的优化,SQL语句的优化,网上关于SQL优化的教程很多,但是鱼目混杂,显得有些杂乱不堪.近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请 ...