Spring Boot 中关于 json 返回数据格式的简单封装

本文介绍了一种通用的JSON响应封装方法,通过自定义的Java类JsonResult实现前后端交互的统一响应格式,包括成功与错误状态的处理,示例展示了如何在Spring MVC中使用此封装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

说明 :getter,setter 使用的是lombok,所以直接使用的 @Data

封装方法:

package com.imooc.demo.common;

import lombok.Data;

@Data
public class JsonResult<T> {
    private Long code;
    private String msg;
    private T data;

    protected JsonResult() {
    }

    protected JsonResult(long code, String message, T data) {
        this.code = code;
        this.msg = message;
        this.data = data;
    }

    /**
     * 成功返回结果
     * @param  message 提示信息
     */
    public static <T> JsonResult<T> success(String message) {
        return new JsonResult<T>(200, message, null);
    }

    /**
     * 成功返回结果
     *
     * @param data 获取的数据
     */
    public static <T> JsonResult<T> success(T data) {
        return new JsonResult<T>(200, "操作成功", data);
    }

    /**
     * 成功返回结果
     *
     * @param data 获取的数据
     * @param  message 提示信息
     */
    public static <T> JsonResult<T> success(T data, String message) {
        return new JsonResult<T>(200, message, data);
    }

    /**
     * 失败返回结果
     */
    public static <T> JsonResult<T> error() {
        return new JsonResult<T>(400, "操作失败", null);
    }

    /**
     * 失败返回结果
     */
    public static <T> JsonResult<T> error(String message) {
        return new JsonResult<T>(400, message, null);
    }


}

使用示例:

package com.imooc.demo.controller;


import com.imooc.demo.common.JsonResult;
import com.imooc.demo.entity.User;
import com.imooc.demo.service.impl.UserServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.web.bind.annotation.RestController;

import java.util.List;

/**
 * <p>
 *  前端控制器
 * </p>
 *
 * @author luyuan
 * @since 2019-11-12
 */
@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserServiceImpl userService;

    @RequestMapping("/list")
    public JsonResult<List<User>> getAllUsers(){
        List<User> users = userService.getAllUsers();
        return JsonResult.success(users,"获取成功");
    }

    @RequestMapping("/create")
    public JsonResult create(@RequestBody User user){
        JsonResult jsonResult;
        int result = userService.createUser(user);
        if (result==1) {//  创建成功
           jsonResult =  JsonResult.success("创建成功");
        }else{// 创建失败
            jsonResult = JsonResult.error("创建失败");
        }
        return  jsonResult;
    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

鲁元

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

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

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

打赏作者

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

抵扣说明:

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

余额充值