自定义响应返回结构

自定义响应数据结构代码 用于返回参数说明本次访问后台api行动参数,门户接受此类数据后需要使用本类的方法转换成对应的数据类型格式(类,或者list) 200:表示成功 500:表示错误,错误信息在msg字段中 501:bean验证错误,不管多少个错误都以map形式返回 502:拦截器拦截到用户token出错 555:异常抛出信息 立即下载

前言

规范的自定义返回结构无疑会增强代码的可读性,今天就给大家晒一个模板,可提供给 H5/ios/安卓/公众号/小程序 使用,前端接受此类数据(json object)后,可自行根据业务去实现相关功能.

代码

package com.my.utils;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.ObjectMapper;

/**
 * 
 * @Title: MyJSONResult.java
 * @Package com.My.utils
 * @Description: 自定义响应数据结构
 * 				本类可提供给 H5/ios/安卓/公众号/小程序 使用
 * 				前端接受此类数据(json object)后,可自行根据业务去实现相关功能
 * 
 * 				200:表示成功
 * 				500:表示错误,错误信息在msg字段中
 * 				501:bean验证错误,不管多少个错误都以map形式返回
 * 				502:拦截器拦截到用户token出错
 * 				555:异常抛出信息
 * 				556: 用户qq校验异常
 * @Copyright: Copyright (c) 2020
 * @Company: www.My.com
 * @author Chamption-Dai
 * @version V1.0
 */
public class MyJSONResult {

    // 定义jackson对象
    private static final ObjectMapper MAPPER = new ObjectMapper();

    // 响应业务状态
    private Integer status;

    // 响应消息
    private String msg;

    // 响应中的数据
    private Object data;
    
    @JsonIgnore
    private String ok;	// 不使用

    public static MyJSONResult build(Integer status, String msg, Object data) {
        return new MyJSONResult(status, msg, data);
    }

    public static MyJSONResult build(Integer status, String msg, Object data, String ok) {
        return new MyJSONResult(status, msg, data, ok);
    }
    
    public static MyJSONResult ok(Object data) {
        return new MyJSONResult(data);
    }

    public static MyJSONResult ok() {
        return new MyJSONResult(null);
    }
    
    public static MyJSONResult errorMsg(String msg) {
        return new MyJSONResult(500, msg, null);
    }
    
    public static MyJSONResult errorMap(Object data) {
        return new MyJSONResult(501, "error", data);
    }
    
    public static MyJSONResult errorTokenMsg(String msg) {
        return new MyJSONResult(502, msg, null);
    }
    
    public static MyJSONResult errorException(String msg) {
        return new MyJSONResult(555, msg, null);
    }
    
    public static MyJSONResult errorUserQQ(String msg) {
        return new MyJSONResult(556, msg, null);
    }

    public MyJSONResult() {

    }

    public MyJSONResult(Integer status, String msg, Object data) {
        this.status = status;
        this.msg = msg;
        this.data = data;
    }
    
    public MyJSONResult(Integer status, String msg, Object data, String ok) {
        this.status = status;
        this.msg = msg;
        this.data = data;
        this.ok = ok;
    }

    public MyJSONResult(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;
    }

	public String getOk() {
		return ok;
	}

	public void setOk(String ok) {
		this.ok = ok;
	}

}

结束语

代码不止,奋斗不息。

手把手教你用smarteye搭建免费GB28181监控平台(含海康设备接入避坑指南) 本文提供了一份基于SmartEye搭建免费GB28181视频监控平台的实战指南。详细介绍了从服务器部署、GB28181协议核心配置,到海康威视等主流设备接入的完整流程,并重点分享了设备注册失败、无法预览等常见问题的深度排错方法,旨在帮助中小企业及开发者低成本实现多品牌监控设备的统一管理。 阅读详情

相关推荐

VPS环境搭建及配置

VPS(Virtual Private Server)是一种虚拟化技术,可以将一台物理服务器分成多个虚拟服务器,每个虚拟服务器都有独立的操作系统和资源,相互之间互不影响。VPS可以提供类似于独立服务器的功能,但价格更便宜,适合中小企业和个人用户使用。VPS可以用于网站托管、应用程序部署、游戏服务器、数据备份等各种场景。

YJ_12340的博客 1万+

Java架构师—自定义响应数据结构及BO数据验证

Spring提供的HttpStatus; 自定义响应数据结构; 使用Hibernate Validator进行BO数据验证

qq_36473058的博客 468

【STC8G1K08A串口使用】

STC8G1K08A串口打印“Hello world”

m0_47459564的博客 1万+

java自定义响应数据结构

import java.util.List; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; /** * * @Description: 自定义响应数据结构 * 这个类是提供给门户,ios,安卓,微信商城用的 * 门户接...

淡水中的wawa的博客 884

Allegro如何改变线宽操作指导

用Allegro做pcb设计的时候,改变走线线宽是非常常用的功能,如下图。线宽目前是12mil,需要把线宽改成15mil。如何改变线宽操作指导。

weixin_54787054的博客 4254

RK35X8调试YT8531单网口千兆以太网PHY芯片,修复ping不通或者IP地址丢失的问题

RK35X8上调试YT8531以太网PHY

荻夜的博客 3976

Java中自定义返回类(Controller统一返回对象)

自定义返回类 需求: 我们很多时候在传Json数据时都需要确定浏览器向服务器的请求是否成功,所以我们在返回Json数据时使用一个包装类将数据包装起来,并在其中添加一些状态码和成功失败的方法。 代码: public class Msg { private int code;//请求响应码 200成功,400失败 private String msg;//提示信息 private Map<String,Object> data = new HashMap<>();//返

qq_41570752的博客 3943

车载软件架构 —— AUTOSAR Vector SIP包(三)

### 上一篇文章中介绍了AUTOSAR基础软件供应商Vector公司的开发工具链,本文将继续介绍Vector公司的AUTOSAR产品。 ### -> 1、Vector SIP包中的StartApplication ### -> 2、StartApplication如何开始使用

Soly_kun的博客 829

java自定义响应结构

package com.taotao.common.pojo; import java.util.List; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; /** * 淘淘商城自定义响应结构 */ public class Taota...

pioneer的博客 1411

LPDDR6来了!带你一文看懂它和LPDDR5/5X的差距 + 技术演进逻辑全解析

🧠从速率到架构,从总线宽度到协议设计,LPDDR6 每一个改动都不是拍脑袋做的,它针对的是AI / HPC / 云计算 / 下一代笔记本平台的真实需求。作为工程师的我们,不仅要“用得上”,更要“测得准”,因为没有测试验证,就没有量产落地!🎯LPDDR6不是未来,而是现在进行时!

weixin_43199439的博客 2172

手把手教你学SIMULINK模块库文件专栏-From Workspace 模块详解

模块是 Simulink 中的一个信号源模块,用于从 MATLAB 工作区加载数据作为输入信号。该模块允许用户将预先在 MATLAB 中生成的数据(如时间序列、矩阵或结构体)导入到 Simulink 模型中,从而实现更灵活的信号输入和仿真控制。通过深入了解其参数的影响及结合 MATLAB 脚本的应用,读者可以更加有效地利用这一模块进行仿真和研究。此外,通过实际应用场景的扩展以及常见问题解答部分的帮助,能够更好地掌握。模块是一个非常灵活的工具,适用于需要从 MATLAB 工作区加载数据的各种场景。

MHD0815的博客 633

springboot构造并返回一个json对象++++自定义响应数据结构

yesspringboot构造并返回一个json对象自定义响应数据结构 springboot构造并返回一个json对象 package com.oracle.pojo; import java.util.Date; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation...

凯凯的博客 1479

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

magic-api自定义返回响应结构

接下来改造返回的数据结构,由于es返回的是一个LinkedHashMap数据类型,所以我们就使用LinkedHashMap来接收返回的数据结构,然后将它转换成JSONObject进行解析,最后封装成PageResult对象返回。在magic-api操作界面定义脚本,查询es里面的数据。可以通过脚本来调用java代码来实现;查询后返回的结果并不是我们想要的。

puyan_100的博客 4014

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

前后端交互中,返回前端的自定义响应数据结构

在前后端交互分离的体系下,我们后端一般会将返回给前端的信息数据进行格式的统一,然后返回前端json串;,一下我提供了一个模板,在实际开发中可进行参考 package com.project.util; /** * @Description: 自定义响应数据结构 * 200:表示成功 * 500:表示错误,错误信息在msg字段中 * 501:bean验证错误,不管...

weixin_30563319的博客 705

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

http返回体自定义错误码(返回json body中的自定义code、message、details字段,注意与http状态码区分)(谷歌http标准、谷歌api错误响应结构)状态码与错误码

在HTTP返回的JSON中自定义错误码是一种常见的做法,这可以让你更精确地处理特定类型的错误。通常,这样的JSON对象会包含一些字段来描述错误,例如codemessage,和details。这里的code字段表示错误码,message字段提供了一个简单的错误描述,而details字段则给出了更详细的信息。大公司的处理方式各有不同,但都有一些共同的模式。"error": {],在上述例子中,code字段表示HTTP状态码,而message字段则包含了关于错误的总体描述。在errors。

Dontla的博客 1357

AjaxResult自定义响应结构,返回后台JSON对象,适用于SpringBoot,SpirngMVC

使用SpringMVC返回JSON时,为了方便,编写了这个工具类, 可以通过连续put设置数据,方便易用。 package cn.itsub.zhuxian.utils; import java.util.HashMap; public class Result extends HashMap{ //禁止其他类用new创建 private Result() { } public Result put(String key, Object value) {

夏增明的博客 1474

kratos V2 框架设计自定义返回结构以及跨域

kratos v2自定义返回结构

fbbqt的博客 2011

Django 基础(10)-Django drf自定义异常返回类与django REST 自定义返回格式

文章目录Django 基础(10)-Django自定义异常返回类APIException()参考 Django 基础(10)-Django自定义异常返回类 官网: https://www.django-rest-framework.org/api-guide/exceptions/ REST framework定义的异常 APIException 所有异常的父类 ParseError 解析错误 AuthenticationFailed 认证失败 NotAuthenticated 尚未认证 Permissi

西京刀客 2117

Visual C++网络编程经典案例详解 第5章 网页浏览器 HTTP响应 实体数据 自定义一个简单的消息体结构

总之,服务器返回的响应消息类似于C++语言中的结构体 消息头和消息体就是这个结构体里面的元素。 用户在使用HTTP编程时, 可以根据需要自定义一个结构体存储该消息数据。 例如,自定义一个简单的消息结构体 typedef struct { char *messagehead; //数据头指针 float i; //实体数据的大小 char *messagebody; //实体数据...

eyetired的博客 206

django rest framework自定义返回格式

一、默认response # view from rest_framework.generics import ListAPIView from .serializer import IdcSerializer from .models import Idc class IdcList(ListAPIView): queryset = Idc.objects....

weixin_30847271的博客 2043

springboot工程自定义response注解、自定义规范化返回数据结构

1、需求背景 在做项目的时候你可能接到这样的需求,对于springboot项目而言,公司大佬们说默认的返回数据结构不能满足客户的需要,咱们自己必须封装出牛逼的数据结构,看起来很吊很吊的那种,这样对外提供的接口文档才牛逼,让别人看起来我司很正规,有一套自己的规范,巴拉巴拉巴拉一大堆。。。。 其实这个情况在各个公司还是比较常见的。但具体咋实现嘞,总不能在每个方法里面都写一段代码来保证数据结构的一致性吧,这样太傻了。通过这篇博客就搞一下怎样简洁的实现此功能。具体思路是这样的: 1...

奔跑的路路 4578

Feign自定义ErrorDecoder错误时返回统一结构

目录Feign自定义ErrorDecoder错误时返回统一结构背景问题解决自定义FeignErrorDecoder在FeignCliet中使用FeignErrorDecoder自定义DefaultErrorAttributes全局异常统一处理[gateway]自定义ErrorHandlerConfiguration[gateway]自定义JsonExceptionHandler小结完整代码Demo参考 Feign自定义ErrorDecoder错误时返回统一结构 背景 微服务架构项目开发中,API接口都统一使

爱上程序猿 1万+

java 自定义数据结构_自定义响应数据结构

package com.leon.utils;import com.fasterxml.jackson.annotation.JsonIgnore;import com.fasterxml.jackson.databind.ObjectMapper;/**** @Title: JSONResult.java* @Package com.leon.utils* @Description: 自定义响应...

weixin_29164843的博客 490

spring-cloud-gateway GlobalFilter 自定义鉴权失败 返回数据结构

1、 在使用spring-cloud-gateway 拦截鉴权的时候的时候,错误一般返回401。 我们该如果自定义自己的返回权限呢。图中红色部分就是自定义鉴权失败返回数据结构。 @Configuration @ComponentScan(basePackages = "com.xx.test") @Slf4j public class GateWayFiler implements GlobalFilter { /** * 1.首先网关检查token是否有效,无效返回自定数据结构.

jiejiegua的博客 4242

abp api返回自定义结构体

abp常规返回的结构体是经过封装后,结构如下 { "result": { "ok": true, "msg": "sucess", "data": "123" }, "targetUrl": null, "success": true, "error": null, "unAuthorizedRequest": false, "__abp": true } 但有时需要 获取干净的返回,不需要什么封

你要明白,任何问题都不是孤立存在的,一定有人曾经遇到过,并且已经有更好的解决办法了,只是我还不知道。我不应该在黑暗中独自前行,去重新发明轮子,也许我的顿悟,只是别人的基本功!我应该要站在巨人的肩膀上,学习更成熟的经验和方法,然后再来解决这个问题 2133
上一篇: @Transactional详解
下一篇: Centos7安装JDK
Champion-Dai
博客等级 码龄10年 4559粉丝 138原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Champion-Dai

你的鼓励将是我创作最大的动力,

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值