栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

SpringBoot的JSON工具类(java),用于前后端分离

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

SpringBoot的JSON工具类(java),用于前后端分离

简介

JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式。它基于 ECMAScript(European Computer Manufacturers Association, 欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

JSON工具类(自用)

ComonPage.java:用来封装PageHelper分页插件的数据
package com.attendance.common;

import com.github.pagehelper.PageInfo;
import lombok.Data;

import java.util.List;

@Data
public class CommonPage {
    //当前页
    private int pageNum;
    //每页的数量
    private int pageSize;
    //当前页的数量
    private int size;

    //总记录数
    private long total;

    //总页数
    private int pages;

    //是否为第一页
    private boolean isFirstPage = false;

    //是否为最后一页
    private boolean isLastPage = false;

    //是否有前一页
    private boolean hasPreviousPage = false;

    //是否有下一页
    private boolean hasNextPage = false;

    //结果集
    private List list;

    public static  CommonPage restPage(List list) {
        CommonPage result = new CommonPage();
        PageInfo pageInfo = new PageInfo(list);
        result.setPages(pageInfo.getPages());
        result.setPageNum(pageInfo.getPageNum());
        result.setPageSize(pageInfo.getPageSize());
        result.setSize(pageInfo.getSize());
        result.setTotal(pageInfo.getTotal());
        result.setFirstPage(pageInfo.isIsFirstPage());
        result.setHasNextPage(pageInfo.isHasNextPage());
        result.setHasPreviousPage(pageInfo.isHasPreviousPage());
        result.setLastPage(pageInfo.isIsLastPage());
        result.setList(pageInfo.getList());
        return result;
    }
}
就是用来封装下面这样的数据
    //    根据条件查学生信息
    @Override
    public CommonResult selectStudent(Student student, Pages pages) {
        PageHelper.startPage(pages.getPage(),pages.getNum());
        return CommonResult.success(CommonPage.restPage(studentMapper.selectStudent(student)));
    }
Pages.java:用来装分页插件需要的数据
package com.attendance.pojo;

import lombok.Data;

@Data
public class Pages {
    private int page = 1;//第几页
    private int num = 5;//每页几条数据
}
CommonResult.java:封装JSON的工具类
package com.attendance.common;

import lombok.Data;

@Data
public class CommonResult {
    private long code;
    private String message;
    private boolean flag;
    private T data;

    protected CommonResult() {
    }

    protected CommonResult(long code, boolean flag, String message, T data) {
        this.code = code;
        this.flag = flag;
        this.message = message;
        this.data = data;
    }

    public CommonResult(long code, boolean flag, String message) {
        this.code = code;
        this.flag = flag;
        this.message = message;
    }

    public static  CommonResult success(T data) {
        return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getFlag(), ResultCode.SUCCESS.getMessage(), data);
    }

    public static  CommonResult success(T data, String message) {
        return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getFlag(), message, data);
    }

    public static  CommonResult success(String message) {
        return new CommonResult(ResultCode.SUCCESS.getCode(), ResultCode.SUCCESS.getFlag(), message);
    }

    public static  CommonResult failed(IErrorCode errorCode) {
        return new CommonResult(errorCode.getCode(), errorCode.getFlag(), errorCode.getMessage(), (Object)null);
    }

    public static  CommonResult failed(IErrorCode errorCode, String message) {
        return new CommonResult(errorCode.getCode(), errorCode.getFlag(), message, (Object)null);
    }

    public static  CommonResult failed(String message) {
        return new CommonResult(ResultCode.FAILED.getCode(), ResultCode.FAILED.getFlag(), message, (Object)null);
    }

    public static  CommonResult failed() {
        return failed((IErrorCode)ResultCode.FAILED);
    }

    public static  CommonResult validateFailed() {
        return failed((IErrorCode)ResultCode.VALIDATE_FAILED);
    }

    public static  CommonResult validateFailed(String message) {
        return new CommonResult(ResultCode.VALIDATE_FAILED.getCode(), ResultCode.VALIDATE_FAILED.getFlag(), message, (Object)null);
    }

    public static  CommonResult unauthorized(T data) {
        return new CommonResult(ResultCode.UNAUTHORIZED.getCode(), ResultCode.UNAUTHORIZED.getFlag(), ResultCode.UNAUTHORIZED.getMessage(), data);
    }

    public static  CommonResult forbidden(T data) {
        return new CommonResult(ResultCode.FORBIDDEN.getCode(), ResultCode.FORBIDDEN.getFlag(), ResultCode.FORBIDDEN.getMessage(), data);
    }
}
IErrorCode:存放数据的接口
package com.attendance.common;

public interface IErrorCode {
    long getCode();

    boolean getFlag();

    String getMessage();
}
ResultCode.java:存放数据的实现类
package com.attendance.common;

public enum ResultCode implements IErrorCode {
    SUCCESS(200L, true, "操作成功"),
    FAILED(500L, false, "操作失败"),
    VALIDATE_FAILED(404L, false, "参数检验失败"),
    UNAUTHORIZED(401L, false, "暂未登录或token已经过期"),
    FORBIDDEN(403L, false, "没有相关权限");

    private long code;
    private boolean flag;
    private String message;

    private ResultCode(long code, boolean flag, String message) {
        this.code = code;
        this.flag = flag;
        this.message = message;
    }

    public long getCode() {
        return this.code;
    }

    public boolean getFlag() {
        return this.flag;
    }

    public String getMessage() {
        return this.message;
    }
}
具体操作代码 Service:

就是让方法的返回值变成CommonResult

    //    新增学生信息
    @Override
    public CommonResult selectStudentById(int id) {
        Student student = studentMapper.selectStudentById(id);
        return CommonResult.success(student,"查询成功!");
    }

    //    更改学生状态
    @Override
    public CommonResult updateStudentInfo(Student student) {
        int i = studentMapper.updateStudentInfo(student);
        if (i==1){
            return CommonResult.success("修改信息成功!");
        }else {
            return CommonResult.failed("修改数据失败!");
        }
    }
Controller:
//    更新学生基本信息
    @PostMapping("/updateStudentInfo")
    public CommonResult updateStudentInfo(@RequestBody Student student){
        return studentService.updateStudentInfo(student);
    }

//    更改学生状态
    @PostMapping("/modifyStudentStatus")
    public CommonResult modifyStudentStatus(@RequestBody Student student){
        return studentService.modifyStudentStatus(student);
    }
发送JSON后的返回值(测试),这里我是那我另一个项目做的测试,反正返回值就是这个样子,工具类都可以调整,这里我用了Mybatis-Plus的分页插件,所以都没有使用CommonPage
{
    "code": 0,
    "message": "查询成功!",
    "flag": true,
    "data": [
        {
            "id": 1,
            "stuName": "苏文绩",
            "stuNative": "重庆市铜梁区",
            "stuSex": "男",
            "stuPhone1": "17782299402",
            "stuPhone2": "19112799705",
            "classType": "文科",
            "stuIdentity": "500224200012050053",
            "stuAddress": "重庆市铜梁区东城街道玉泉花苑5-12-3",
            "specialType": "单亲家庭",
            "stuScore": "502",
            "stuMajor1": "软件工程",
            "stuMajor2": "计算机科学与技术",
            "status": 0,
            "contactContent": "",
            "version": 1,
            "createTime": "2022-06-23T09:50:26.000+00:00",
            "updateTime": "2022-06-27T03:55:51.000+00:00",
            "deleted": false
        },
        {
            "id": 2,
            "stuName": "谢汝雄",
            "stuNative": "重庆市江津区",
            "stuSex": "男",
            "stuPhone1": "17353192303",
            "stuPhone2": "11651561651",
            "classType": "文科",
            "stuIdentity": "500244200007031125",
            "stuAddress": "重庆市江津区",
            "specialType": "孤儿",
            "stuScore": "600",
            "stuMajor1": "自动化",
            "stuMajor2": "艺术与科技",
            "status": 1,
            "contactContent": "adasd",
            "version": 1,
            "createTime": "2022-06-23T09:52:18.000+00:00",
            "updateTime": "2022-06-27T04:42:21.000+00:00",
            "deleted": false
        },
        {
            "id": 3,
            "stuName": "张幸",
            "stuNative": "重庆市万州区",
            "stuSex": "男",
            "stuPhone1": "173151515",
            "stuPhone2": "12.1.21.1.15.15",
            "classType": "理科",
            "stuIdentity": "56156165165",
            "stuAddress": "重庆市万州区",
            "specialType": "孤儿,优扶家庭子女,家庭突发重大变故",
            "stuScore": "504",
            "stuMajor1": "计算机科学与技术",
            "stuMajor2": "艺术与科技",
            "status": 0,
            "contactContent": "",
            "version": 1,
            "createTime": "2022-06-23T09:53:06.000+00:00",
            "updateTime": "2022-06-26T08:47:18.000+00:00",
            "deleted": false
        },
        {
            "id": 4,
            "stuName": "赵云",
            "stuNative": "124124",
            "stuSex": "男",
            "stuPhone1": "12124124",
            "stuPhone2": "12512512",
            "classType": "1",
            "stuIdentity": "124124",
            "stuAddress": "123123123",
            "specialType": "孤儿,烈士子女,优扶家庭子女,建档立卡贫困家庭学生",
            "stuScore": "124124",
            "stuMajor1": "通信工程",
            "stuMajor2": "自动化",
            "status": 0,
            "contactContent": "",
            "version": 1,
            "createTime": "2022-06-23T10:29:57.000+00:00",
            "updateTime": "2022-06-26T08:52:32.000+00:00",
            "deleted": false
        },
        {
            "id": 5,
            "stuName": "张三",
            "stuNative": "重庆",
            "stuSex": "男",
            "stuPhone1": "12124",
            "stuPhone2": "12412",
            "classType": "1",
            "stuIdentity": "500224",
            "stuAddress": "124125125",
            "specialType": "孤儿,烈士子女,优扶家庭子女,建档立卡贫困家庭学生",
            "stuScore": "654",
            "stuMajor1": "市场营销",
            "stuMajor2": "信息工程",
            "status": 0,
            "contactContent": "",
            "version": 1,
            "createTime": "2022-06-23T11:02:43.000+00:00",
            "updateTime": "2022-06-26T09:18:58.000+00:00",
            "deleted": false
        }
    ],
    "count": 21
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1000137.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号