统一封装json返回结果
- import org.codehaus.jackson.annotate.JsonIgnore;
- import org.codehaus.jackson.map.annotate.JsonSerialize;
- import java.io.Serializable;
- @JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
- //保证序列化json的时候,如果是null的对象,key也会消失
- public class ServiceResponse<T> implements Serializable {
- private int status; //结果状态值
- private String msg; //结果信息
- private T data; //结果数据
- private ServiceResponse(int status){
- this.status = status;
- }
- private ServiceResponse(int status, T data){
- this.status = status;
- this.data = data;
- }
- private ServiceResponse(int status, String msg, T data){
- this.status = status;
- this.msg = msg;
- this.data = data;
- }
- private ServiceResponse(int status, String msg){
- this.status = status;
- this.msg = msg;
- }
- @JsonIgnore //让其不在json序列化中
- public boolean isSuccess(){
- return this.status == ResponseCode.SUCCESS.getCode();
- }
- public int getStatus() {
- return status;
- }
- public String getMsg() {
- return msg;
- }
- public T getData() {
- return data;
- }
- public static <T> ServiceResponse<T> createBySuccess(){
- return new ServiceResponse<T>(ResponseCode.SUCCESS.getCode());
- }
- public static <T> ServiceResponse<T> createBySuccessMessage(String msg){
- return new ServiceResponse<T>(ResponseCode.SUCCESS.getCode(), msg);
- }
- public static <T> ServiceResponse<T> createBySuccess(T data){
- return new ServiceResponse<T>(ResponseCode.SUCCESS.getCode(), data);
- }
- public static <T> ServiceResponse<T> createBySuccess(String msg, T data){
- return new ServiceResponse<T>(ResponseCode.SUCCESS.getCode(), msg, data);
- }
- public static <T> ServiceResponse<T> createByError(){
- return new ServiceResponse<T>(ResponseCode.ERROR.getCode(), ResponseCode.ERROR.getDesc());
- }
- public static <T> ServiceResponse<T> createByErrorMessage(String errorMessage){
- return new ServiceResponse<T>(ResponseCode.ERROR.getCode(), errorMessage);
- }
- public static <T> ServiceResponse<T> createByErrorCodeMessage(int errorCode, String errorMessage){
- return new ServiceResponse<T>(errorCode, errorMessage);
- }
- }
使用到的枚举值
- /**
- * 状态枚举值
- */
- public enum ResponseCode {
- SUCCESS(0,"SUCCESS"),
- ERROR(1,"ERROR"),
- NEED_LOGIN(10,"NEED_LOGIN"),
- ILLEGAL_ARGUMENT(2,"ILLEGAL_ARGUMENT");
- private final int code;
- private final String desc;
- ResponseCode(int code, String desc){
- this.code = code;
- this.desc = desc;
- }
- public int getCode() {
- return code;
- }
- public String getDesc() {
- return desc;
- }
- }
统一封装json返回结果的更多相关文章
- 编写JsonResult封装JSON返回值(模板参阅)
编写JsonResult封装JSON返回值 package cn.tedu.note.util; import java.io.Serializable; import cn.tedu.note.se ...
- FastAPI 学习之路(五十九)封装统一的json返回处理工具
这之前的接口,我们返回的格式都是每个接口异常返回的数据格式都会不一样,我们处理起来没有那么方便,我们可以封装一个统一的json处理. 那么我们看下如何来实现呢 from fastapi import ...
- 基于SqlSugar的开发框架循序渐进介绍(10)-- 利用axios组件的封装,实现对后端API数据的访问和基类的统一封装处理
在SqlSugar的开发框架的后端,我们基于Web API的封装了统一的返回结果,使得WebAPI的接口返回值更加简洁,而在前端,我们也需要统一对返回的结果进行解析,并获取和Web API接口对应的数 ...
- 解决spring boot中rest接口404,500等错误返回统一的json格式
在开发rest接口时,我们往往会定义统一的返回格式,列如: { "status": true, "code": 200, "message" ...
- SpringBoot之封装json对象返回json数据
/** * @description:封装json对象,所有返回结果都使用它 **/ public class Result<T> { private int code;// 业务自定义状 ...
- SpringBoot接口 - 如何优雅的对接口返回内容统一封装?
在以SpringBoot开发Restful接口时,统一返回方便前端进行开发和封装,以及出现时给出响应编码和信息.@pdai SpringBoot接口 - 如何优雅的对接口返回内容统一封装? RESTf ...
- ASP.NET Core 一个Json返回类
很多时候(如Ajax)我们需要从Web应用中得到标准的反馈以便进行数据分析. 为此,我将各类返回标准化封装,客户端将统一得到 JSON:[{"status":200,"m ...
- 统一的Json组件和csv下载组件
java-web-common java-web-common Json组件 目标和用途 规范Json接口格式 Controller中一律返回Java object,组件将自动转换数据格式,满足Jso ...
- ASP.NET Core 统一异常处理和返回
业务场景: 业务需求要求,需要对 ASP.NET Core 异常进行统一处理和返回,比如出现 500 错误和业务服务错误进行不同的处理和返回. 具体实现: using Microsoft.AspNet ...
随机推荐
- redis提权
介绍:Redis是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.它通常被称为数据结构服务器,因为值(va ...
- python - 对接微信支付(PC)和 注意点
注:本文仅提供 pc 端微信扫码支付(模式一)的示例代码. 关于对接过程中遇到的问题总结在本文最下方. 参考: 官方文档, https://blog.csdn.net/lm_is_dc/arti ...
- jeecg uedit 自定义图片上传路径
jeecg uedit 图片上传配置自定义物理路径,简单描述:我们知道 jeecg 中使用的 uedit 默认图片上传路径为 "当前项目\plug-in\ueditor\jsp\upload ...
- 如何用okr做好目标规划
有朋友和我吐槽公司总是规划一个个振奋人心的目标,让大家对工作充满了热情.然而好的开头却缺少追踪反馈没有好的结尾,那些大家所渴望达成的目标随着时间的流逝便逐渐没有了音信,不再有人主动提起,团队成员迎来的 ...
- linux命令之------快捷键说明
linux快捷键说明 (1)命令或目录补齐:Tab (2)遍历历史记录:history 上移:ctrl+p,下移:ctrl+n (3)光标移动 左移:ctrl+b:右移:ctrl+f:移到首部:ctr ...
- bluestart
# Add nano as default editorexport EDITOR=nanoexport PULSE_LATENCY_MSEC=60 alias ls='ls --color=auto ...
- layui如何自定义弹出层关闭事件
在某些业务场景下,我们需要自定义弹出层关闭事件,代码示例如下: layui.use('layer', function () { var layer = layui.layer; layer.open ...
- css3学习之--transition属性(过渡)
一.理解transition属性 W3C标准中对CSS3的transition是这样描述的: CSS的transition允许CSS的属性值在一定的时间区间内平滑地过渡.这种效果可以在鼠标单击,获得焦 ...
- jquery数组倒序
倒叙前:var mem = [1, 2, 3]: 倒序后:var men1=[3,2,1]: <script type="text/javascript"> $(fun ...
- SQL优化:一些简单的又实用的SQL优化方案【转】
面试过程中,面试官有极高的频率会问道数据库的优化,SQL语句的优化,网上关于SQL优化的教程很多,但是鱼目混杂,显得有些杂乱不堪.近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请 ...