JAVA后端如何返回多重复杂的json字符串给前端

1.构造一个公共的返回枚举类


/**
 * 公共的返回码
 *    返回码code:
 *      成功:10000
 *      失败:10001
 *      未登录:10002
 *      未授权:10003
 *      抛出异常:99999
 */
public enum ResultCode {

    SUCCESS(true,10000,"操作成功!"),
    //---系统错误返回码-----
    FAIL(false,10001,"操作失败"),
    UNAUTHENTICATED(false,10002,"您还未登录"),
    UNAUTHORISE(false,10003,"权限不足"),
    SERVER_ERROR(false,99999,"抱歉,系统繁忙,请稍后重试!"),

    //---用户操作返回码  2xxxx----
    MOBILEORPASSWORDERROR(false,20001,"用户名或密码错误");


    //---用户操作返回码  3xxxx----
    //---权限操作返回码----
    //---其他操作返回码----

    //操作是否成功
    boolean success;
    //操作代码
    int code;
    //提示信息
    String message;

    ResultCode(boolean success,int code, String message){
        this.success = success;
        this.code = code;
        this.message = message;
    }

    public boolean success() {
        return success;
    }

    public int code() {
        return code;
    }

    public String message() {
        return message;
    }

}

 

2.构造所有的数据返回对象类


/**
 * 数据响应对象
 *    {
 *      success :是否成功
 *      code    :返回码
 *      message :返回信息
 *      //返回数据
 *      data:  :{
 *
 *      }
 *    }
 */
@Data
@NoArgsConstructor
public class Result {

    private boolean success;//是否成功
    private Integer code;// 返回码
    private String message;//返回信息
    private Object data;// 返回数据

    public Result(ResultCode code) {
        this.success = code.success;
        this.code = code.code;
        this.message = code.message;
    }

    public Result(ResultCode code,Object data) {
        this.success = code.success;
        this.code = code.code;
        this.message = code.message;
        this.data = data;
    }

    public Result(Integer code,String message,boolean success) {
        this.code = code;
        this.message = message;
        this.success = success;
    }

    public static Result SUCCESS(){
        return new Result(ResultCode.SUCCESS);
    }

    public static Result ERROR(){
        return new Result(ResultCode.SERVER_ERROR);
    }

    public static Result FAIL(){
        return new Result(ResultCode.FAIL);
    }
}

 

3.若是有分页,可以选择构造分页返回结果类


/**
 * 分页
 *      {
 *          “success”:“成功”,
 *          “code”:10000
 *          “message”:“ok”,
 *          ”data“:{
 *              total://总条数
 *              rows ://数据列表
 *          }
 *      }
 *
 *
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
public class PageResult {
    private Long total;
    private List rows;
}

(1)其中@Data、@AllArgsConstructor、@NoArgsConstructor是Lombok插件中的注解,@Data可以自动为主类生成get、set方法,toString方法,不用再去自己辛苦的去一个个的get、set了。这里建议一些小的项目用Lombok;@AllArgsConstructor作用是去自动创建所有的有参构造方法;@NOArgsConstructor的作用是自动创建空仓构造方法。 

 

4.采用PostMan后端测试工具进行测试


{
  "success": true,
  "code": 100000,
  "message": "成功",
  "data": {
    "total": 17,
    "rows": [
      {
        "id": "1",
        "name": "刘德华",
        "intro": "毕业于师范大学数学系,热爱教育事业,执教数学思维6年有余"
      }
    ]
  }
}

        

你可能感兴趣的:(Java,java,spring,boot,后端,spring)