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

@JsonDeserialize和@JsonSerialize注解的使用方式

 更新時間:2024年08月23日 09:18:47   作者:華妃  
這篇文章主要介紹了@JsonDeserialize和@JsonSerialize注解的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

JsonDeserialize注解介紹

@JsonDeserialize

  • json反序列化注解,作用于setter()方法,將json數據反序列化為java對象。
  • 可以理解為用在處理接收的數據上。

使用場景

  • 前端傳遞的參數與后端實際接收的參數不一致時,可以通過反序列化注解處理。
  • (比如將前端傳遞的主鍵集合轉換成用逗號分隔的字符串)

使用示例

假如前端頁面中選擇多條數據,會向后端傳遞選中的數據對象集合,但是后端期望存儲選中的多個數據id用逗號分隔,此時可以用反序列注解。

1、自定義反序列化的方式

public class CheckedStringDeserializer extends JsonDeserializer<String> {

    @Override
    public String deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
        final List<Map<String, String>> list = p.getCodec().readValue(p, new TypeReference<List<Map<String, String>>>() {
        });
        if (CollUtil.isNotEmpty(list)) {
            final ArrayList<String> objects = new ArrayList<>(list.size());
            list.forEach(e -> objects.add(e.get("id")));
            return CollUtil.join(objects, ",");
        }
        return "";
    }
}

2、后端接收參數的dto如下圖所示,其中臨時黨支部人員Id接收的是String類型,增加了該反序列化注解。

3、前端傳遞參數如下圖所示:

4、后端實際接收到的參數如圖所示:

@JsonSerialize注解

@JsonSerialize

  • json序列化注解,作用于getter()方法,將java對象序列化為json數據。
  • 可以理解為用在處理返回的數據上

使用場景

后端返回前端的參數與前端期望的參數不一致時,可以用個序列化注解處理。(比如數據脫敏、數據格式處理等)

使用示例

假如后端存儲附件、圖片或者其他文件時,只存了文件key,此時前端反顯需要將數據放在list中回顯。

1、自定義序列化處理方式

public class FileUploadSeserializer extends JsonSerializer<String> {

    @Override
    public void serialize(String value, JsonGenerator gen, SerializerProvider serializers) throws IOException {
        //將string轉為List<Map<String,String>>格式
        Map<String,String> map = new HashMap<>(2);
        List<Map<String,String>> list = new ArrayList<>(1);
        map.put("key", value);
        map.put("name",value);
        list.add(map);
        gen.writeObject(list);
    }
}

2、返回前端的vo對象如下圖所示,其中其中模板背景期望為附件的Key和name對象集合,在該字段上增加了文件上傳序列化注解。

3、此時返回前端的數據格式為

總結

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

相關文章

  • Java中數組轉換為列表的兩種實現(xiàn)方式(超簡單)

    Java中數組轉換為列表的兩種實現(xiàn)方式(超簡單)

    本文介紹了在Java中將數組轉換為列表的兩種常見方法使用Arrays.asList和Java8的Stream API,Arrays.asList方法簡單易用,但返回的列表是固定大小的;而使用Stream API可以實現(xiàn)更靈活的操作,如過濾和映射,根據具體需求選擇合適的方法,感興趣的朋友一起看看吧
    2025-03-03
  • Java設計模式之工廠方法模式詳解

    Java設計模式之工廠方法模式詳解

    工廠方法模式(FACTORY METHOD)是一種常用的類創(chuàng)建型設計模式,此模式的核心精神是封裝類中變化的部分,提取其中個性化善變的部分為獨立類,通過依賴注入以達到解耦、復用和方便后期維護拓展的目的。它的核心結構有四個角色,分別是抽象工廠、具體工廠、抽象產品、具體產品
    2022-08-08
  • 解決java.lang.Error: Unresolved compilation problems:問題

    解決java.lang.Error: Unresolved compilation pro

    這篇文章主要介紹了解決java.lang.Error: Unresolved compilation problems:問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • 淺談web項目讀取classpath路徑下面的文件

    淺談web項目讀取classpath路徑下面的文件

    這篇文章主要介紹了淺談web項目讀取classpath路徑下面的文件,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • IDEA中將SpringBoot項目提交到git倉庫的方法步驟

    IDEA中將SpringBoot項目提交到git倉庫的方法步驟

    本文主要介紹了IDEA中將SpringBoot項目提交到git倉庫的方法步驟,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • IDEA正則表達式全局搜索圖文教程

    IDEA正則表達式全局搜索圖文教程

    當您要搜索和替換特定的文本模式時,請使用正則表達式,下面這篇文章主要給大家介紹了關于IDEA正則表達式全局搜索的相關資料,文中通過代碼以及圖文介紹的非常詳細,需要的朋友可以參考下
    2024-08-08
  • WebClient拋UnsupportedMediaTypeException異常解決

    WebClient拋UnsupportedMediaTypeException異常解決

    這篇文章主要為大家介紹了WebClient拋UnsupportedMediaTypeException異常的解決方案,文中給大家介紹了六中方案,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2022-02-02
  • 詳細介紹Java關鍵字throw?throws?Throwable的用法與區(qū)別

    詳細介紹Java關鍵字throw?throws?Throwable的用法與區(qū)別

    這篇文章主要介紹了java中throws與throw及Throwable的用法和區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-04-04
  • SpringBoot中HTTP請求不通的原因級解決方法

    SpringBoot中HTTP請求不通的原因級解決方法

    HTTP 請求是指從客戶端到服務器的請求消息,對于一個 Spring Boot 項目而言,服務器就是 Spring Boot,客戶端就是用戶本地的瀏覽器,但是會遇到SpringBoot HTTP請求不通的問題,本文介紹了一些常見問題及解決方法,需要的朋友可以參考下
    2025-02-02
  • Spring注解配置IOC,DI的方法詳解

    Spring注解配置IOC,DI的方法詳解

    這篇文章主要為大家介紹了vue組件通信的幾種方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01

最新評論