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

fastjson序列化時間自定義格式示例詳解

 更新時間:2023年04月27日 15:12:24   作者:bright丶  
這篇文章主要為大家介紹了fastjson序列化時間自定義格式示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪

Java8 的日期相關(guān) API

Java8 的日期相關(guān) API用起來是真香,但免不了遇到在用舊版 1.0 API 的情況。這不,跟另一個部門做對接,人家說你發(fā)過來的時間怎么帶個 T,我這邊沒法解析。。。我回頭就是一句xxx,情緒發(fā)泄完該做的事咱也得做不是,下面就看看怎么處理這個問題。

首先建一個項目添加依賴

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.80</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.20</version>
        </dependency>
    </dependencies>

寫個帶有時間屬性的類,就叫 Task 吧,

@Data
@Accessors(chain = true)
public class Task {
    private String name;
    private LocalDateTime startTime;
    private LocalDateTime endTime;
}

看一下 fastjson 序列化方法,發(fā)現(xiàn)可以傳個配置對象,看看這個能不能解決問題

/**
 * @param object 要序列化的對象
 * @param config 序列化配置
 * @param features
 */
public static String toJSONString(Object object, SerializeConfig config, SerializerFeature... features)

這個配置類里面有一個 put 方法,可以設(shè)置不同的類型使用不同的序列化器,所以我們可以通過給日期類型設(shè)置自定義的序列化器來實現(xiàn)自定義日期格式

/**
 * @param type 類型
 * @param value 序列化器
 */
public boolean put(Type type, ObjectSerializer value)

自定義序列化器并重寫序列化方法,這里只針對 LocalDateTime 類型進行了自定義,其他類型如出一轍。

public class JsonSerializer implements ObjectSerializer {
    @Override
    public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
        SerializeWriter out = serializer.getWriter();
        if (object == null) {
            serializer.getWriter().writeNull();
            return;
        }
        // 對LocalDateTime類型進行格式轉(zhuǎn)化
        out.write("\"" + ((LocalDateTime) object).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) + "\"");
    }
}

配置類中注入 Spriing 容器

@Configuration
public class JsonConfig {
    @Bean
    public SerializeConfig serializeConfig() {
        SerializeConfig config = new SerializeConfig();
        // 對LocalDateTime類型指定自定義的序列化器
        config.put(LocalDateTime.class, objectSerializer());
        return config;
    }
    @Bean
    public ObjectSerializer objectSerializer() {
        return new JsonSerializer();
    }
}

寫個接口做下測試

@RestController
@RequestMapping
public class FastJsonDemo {
    @Autowired
    private SerializeConfig serializeConfig;
    @RequestMapping("/test")
    public String jsonTest() {
        LocalDateTime now = LocalDateTime.now();
        Task task = new Task().setName("拯救地球任務(wù)").setStartTime(now).setEndTime(now.plusDays(10));
        return JSON.toJSONString(task, serializeConfig);
    }
}

瀏覽器調(diào)用接口,看下結(jié)果

日期里面的 T 沒有了,變成了自定義的格式,搞定!

以上就是fastjson序列化時間自定義格式示例詳解的詳細內(nèi)容,更多關(guān)于fastjson序列化時間格式的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • java中判斷字段真實長度的實例(中文2個字符,英文1個字符)

    java中判斷字段真實長度的實例(中文2個字符,英文1個字符)

    下面小編就為大家?guī)硪黄猨ava中判斷字段真實長度的實例(中文2個字符,英文1個字符)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • Spring整合Mycat2的具體過程詳解

    Spring整合Mycat2的具體過程詳解

    這篇文章主要給大家介紹Springboot整合Mycat2的具體過程,文中有詳細的圖解過程,感興趣的小伙伴可以跟著小編一起來學(xué)習(xí)
    2023-05-05
  • IntelliJ IDEA查看方法說明文檔的圖解

    IntelliJ IDEA查看方法說明文檔的圖解

    今天小編就為大家分享一篇關(guān)于IntelliJ IDEA查看方法說明文檔的圖解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10
  • Java9中操作和查詢本地進程信息的示例詳解

    Java9中操作和查詢本地進程信息的示例詳解

    這篇文章主要為大家詳細介紹了Java9中操作和查詢本地進程信息的相關(guān)知識,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • 在windows下揪出java程序占用cpu很高的線程并完美解決

    在windows下揪出java程序占用cpu很高的線程并完美解決

    這篇文章主要介紹了在windows下揪出java程序占用cpu很高的線程并完美解決,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • java加密枝術(shù)深入理解

    java加密枝術(shù)深入理解

    java.security包中的MessageDigest類提供了計算消息摘要的方法,本文將詳細介紹,需要了解的朋友可以參考下
    2012-11-11
  • java反射機制示例

    java反射機制示例

    這篇文章主要介紹了java反射機制示例,需要的朋友可以參考下
    2014-04-04
  • springboot中如何替換class文件

    springboot中如何替換class文件

    這篇文章主要介紹了springboot中如何替換class文件,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Java 動態(tài)加載jar和class文件實例解析

    Java 動態(tài)加載jar和class文件實例解析

    這篇文章主要介紹了Java 動態(tài)加載jar和class文件實例解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下
    2018-02-02
  • spring aop execution表達式的用法

    spring aop execution表達式的用法

    這篇文章主要介紹了spring aop execution表達式的用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07

最新評論