欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringBoot如何統(tǒng)一JSON信息返回

 更新時間:2024年08月09日 09:33:53   作者:廣州的程序猿  
這篇文章主要介紹了SpringBoot如何統(tǒng)一JSON信息返回問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

SpringBoot統(tǒng)一JSON信息返回

調(diào)用后端服務后的返回結果有多種類型

如:String,IntegerBoolean,List,Map等,

在一個項目中,為了保持統(tǒng)一性,我們方法返回結果可以全部使用JSON數(shù)據(jù)格式

如下:

{
    "code":200,
    "msg":"成功",
    "data":"JSON數(shù)據(jù)"
}

其中code 是本次請求處理結果對應的狀態(tài)碼,msg是狀態(tài)碼對應的解釋信息,data是要返回的數(shù)據(jù)內(nèi)容,可以是任意一個對象。

封裝響應信息對象

public class ResponseEntity<T> implements Serializable {

    private static final long serialVersionUID = 3595741978061989861L;
    private Integer code;//狀態(tài)碼
    private String msg;//狀態(tài)碼對應信息
    private T data;//要返回的數(shù)據(jù)


    public Integer getCode() {
        return code;
    }


    public void setCode(Integer code) {
        this.code = code;
    }


    public String getMsg() {
        return msg;
    }


    public void setMsg(String msg) {
        this.msg = msg;
    }


    public T getData() {
        return data;
    }


    public void setData(T data) {
        this.data = data;
    }
}

狀態(tài)碼,Http請求狀態(tài)碼有多種,使用枚舉列舉

如下示例:

public enum ResponseEnum {

    SUCCESS(200, "成功"),
    FAIL(-1, "失敗"),
    ERROR_400(400, "錯誤的請求"),
    ERROR_404(404, "訪問資源不存在"),
    ERROR_500(500, "服務器異常");


    private Integer code;
    private String msg;


    ResponseEnum(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }


    public Integer getCode() {
        return code;
    }


    public void setCode(Integer code) {
        this.code = code;
    }


    public String getMsg() {
        return msg;
    }


    public void setMsg(String msg) {
        this.msg = msg;
    }
}

創(chuàng)建一個公共類,生成響應對象

public class ResponseUtil {

    /**
     * 成功返回
     * @param object 返回數(shù)據(jù)
     * @return
     */
    public static ResponseEntity success(Object object){
        ResponseEntity resp = new ResponseEntity();
        resp.setCode(ResponseEnum.SUCCESS.getCode());
        resp.setMsg(ResponseEnum.SUCCESS.getMsg());
        resp.setData(object);
        return resp;
    }


    /**
     * 成功返回  無數(shù)據(jù)
     * @return
     */
    public static ResponseEntity success(){
        return success(null);
    }


    /**
     * 失敗返回
     * @param responseEnum 響應標識
     * @return
     */
    public static ResponseEntity error(ResponseEnum responseEnum){
        ResponseEntity resp = new ResponseEntity();
        resp.setCode(responseEnum.getCode());
        resp.setMsg(responseEnum.getMsg());
        return resp;
    }
}

Spring中的控制器可以用 @Controller@RestController注解來聲明,其中@Controller標識當前控制器是SpringMvc的控制器,要返回JSON對象數(shù)據(jù),需要和@ResponseBody注解聯(lián)合使用;

@RestController主要用來構建Restful風格接口,返回客戶端的請求數(shù)據(jù),相當于同時使用@Controller@ResponseBody注解。

創(chuàng)建Pojo包及對應的實體類

public class DemoEntity {

    private Integer id;
    private String name;


    public Integer getId() {
        return id;
    }


    public void setId(Integer id) {
        this.id = id;
    }


    public String getName() {
        return name;
    }


    public void setName(String name) {
        this.name = name;
    }
}

創(chuàng)建控制器

  • @Controller
@Controller
public class DemoController {

    @RequestMapping(value = "/users", method= RequestMethod.GET)
    @ResponseBody
    public ResponseEntity users(){
        List<DemoEntity> list = new ArrayList<DemoEntity>();
        DemoEntity demo = new DemoEntity();
        demo.setId(1);
        demo.setName("蝸牛");
        list.add(demo);
        DemoEntity demo1 = new DemoEntity();
        demo1.setId(2);
        demo1.setName("葡萄");
        list.add(demo1);
        return ResponseUtil.success(list);
    }
}

測試:

啟動服務后,在瀏覽器地址欄輸入http://localhost:8080/users,可以看到頁面上的輸出信息

{"code":200,"msg":"成功","data":[{"id":1,"name":"蝸牛"},{"id":2,"name":"葡萄"}]}
  • @RestController
@RestController
public class DemoRestController {

    @RequestMapping(value = "/users1", method= RequestMethod.GET)
    public ResponseEntity users(){
        List<DemoEntity> list = new ArrayList<DemoEntity>();
        DemoEntity demo = new DemoEntity();
        demo.setId(1);
        demo.setName("蝸牛");
        list.add(demo);
        DemoEntity demo1 = new DemoEntity();
        demo1.setId(2);
        demo1.setName("葡萄");
        list.add(demo1);
        return ResponseUtil.success(list);
    }
}

總結

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • MybatisPlus分頁失效不起作用的解決

    MybatisPlus分頁失效不起作用的解決

    在使用MybatisPlus的selectPage時發(fā)現(xiàn)分頁不起作用,每次返回的都是全部的數(shù)據(jù),本文就來介紹一下MybatisPlus分頁失效不起作用的解決,感興趣的可以了解一下
    2024-03-03
  • Springboot集成restTemplate過程詳解

    Springboot集成restTemplate過程詳解

    這篇文章主要介紹了Springboot集成restTemplate過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • 解決Java字符串JSON轉換異常:cn.hutool.json.JSONException:?Mismatched?hr?and?body

    解決Java字符串JSON轉換異常:cn.hutool.json.JSONException:?Mismatched?

    這篇文章主要給大家介紹了關于如何解決Java字符串JSON轉換異常:cn.hutool.json.JSONException:?Mismatched?hr?and?body的相關資料,文中將解決的辦法通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-01-01
  • JAVA統(tǒng)計字符串中某個字符出現(xiàn)次數(shù)的方法實現(xiàn)

    JAVA統(tǒng)計字符串中某個字符出現(xiàn)次數(shù)的方法實現(xiàn)

    本文主要介紹了JAVA統(tǒng)計字符串中某個字符出現(xiàn)次數(shù)的方法實現(xiàn),可以循環(huán)使用String的charAt(int index)函數(shù),具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • SpringBoot與SpringCache概念用法大全

    SpringBoot與SpringCache概念用法大全

    這篇文章主要介紹了SpringBoot與SpringCache的概念及基本用法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-02-02
  • Springboot項目如何使用apollo配置中心

    Springboot項目如何使用apollo配置中心

    這篇文章主要介紹了Springboot項目如何使用apollo配置中心,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • Java實現(xiàn)高效PDF文件傳輸技巧

    Java實現(xiàn)高效PDF文件傳輸技巧

    你是否曾為PDF文件傳輸?shù)牡托识鄲溃楷F(xiàn)在,有了這份Java實現(xiàn)高效PDF文件傳輸技巧指南,你將能夠輕松解決這個問題,我們將分享一些實用的技巧和最佳實踐,幫助你優(yōu)化文件傳輸過程,不要錯過這個提高工作效率的機會,快來閱讀這份指南吧!
    2024-03-03
  • springBoot整合jwt實現(xiàn)token令牌認證的示例代碼

    springBoot整合jwt實現(xiàn)token令牌認證的示例代碼

    實施Token驗證的方法挺多的,還有一些標準方法,比如JWT,本文主要介紹了springBoot整合jwt實現(xiàn)token令牌認證的示例代碼,具有一定的參考價值,感興趣的可以了解一下
    2024-08-08
  • JAVA讀取屬性文件的幾種方法總結

    JAVA讀取屬性文件的幾種方法總結

    以下是對在JAVA中讀取屬性文件的幾種方法進行了詳細的總結介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-10-10
  • JDK集合源碼之解析TreeMap(一)

    JDK集合源碼之解析TreeMap(一)

    下面小編就為大家?guī)硪黄獪\談java中的TreeMap 排序與TreeSet 排序。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2021-07-07

最新評論