最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

fastjson序列化時(shí)間自定義格式示例詳解

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

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

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

首先建一個(gè)項(xiàng)目添加依賴

    <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>

寫(xiě)個(gè)帶有時(shí)間屬性的類(lèi),就叫 Task 吧,

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

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

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

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

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

自定義序列化器并重寫(xiě)序列化方法,這里只針對(duì) LocalDateTime 類(lèi)型進(jìn)行了自定義,其他類(lèi)型如出一轍。

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;
        }
        // 對(duì)LocalDateTime類(lèi)型進(jìn)行格式轉(zhuǎn)化
        out.write("\"" + ((LocalDateTime) object).format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) + "\"");
    }
}

配置類(lèi)中注入 Spriing 容器

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

寫(xiě)個(gè)接口做下測(cè)試

@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 沒(méi)有了,變成了自定義的格式,搞定!

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

相關(guān)文章

  • Spring?boot?easyexcel?實(shí)現(xiàn)復(fù)合數(shù)據(jù)導(dǎo)出、按模塊導(dǎo)出功能

    Spring?boot?easyexcel?實(shí)現(xiàn)復(fù)合數(shù)據(jù)導(dǎo)出、按模塊導(dǎo)出功能

    這篇文章主要介紹了Spring?boot?easyexcel?實(shí)現(xiàn)復(fù)合數(shù)據(jù)導(dǎo)出、按模塊導(dǎo)出,實(shí)現(xiàn)思路流程是準(zhǔn)備一個(gè)導(dǎo)出基礎(chǔ)填充模板,默認(rèn)填充key,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-09-09
  • Spring Boot 單元測(cè)試JUnit的實(shí)踐

    Spring Boot 單元測(cè)試JUnit的實(shí)踐

    JUnit是一款優(yōu)秀的開(kāi)源Java單元測(cè)試框架,也是目前使用率最高最流行的測(cè)試框架,這篇文章主要介紹了Spring Boot 單元測(cè)試JUnit的實(shí)踐,感興趣的小伙伴們可以參考一下
    2018-11-11
  • java interface的兩個(gè)經(jīng)典用法

    java interface的兩個(gè)經(jīng)典用法

    這篇文章主要為大家詳細(xì)介紹了java interface的兩個(gè)經(jīng)典用法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Java代碼讀取properties配置文件的示例代碼

    Java代碼讀取properties配置文件的示例代碼

    這篇文章主要介紹了Java代碼讀取properties配置文件,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-05-05
  • Java源碼角度分析HashMap用法

    Java源碼角度分析HashMap用法

    這篇文章主要介紹了Java源碼角度分析HashMap用法,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01
  • mybatis批量插入返回主鍵失敗的坑及解決

    mybatis批量插入返回主鍵失敗的坑及解決

    這篇文章主要介紹了mybatis批量插入返回主鍵失敗的坑及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • java和 javaw 及 javaws的區(qū)別解析

    java和 javaw 及 javaws的區(qū)別解析

    這篇文章主要介紹了java和 javaw 及 javaws的區(qū)別解析,本文通過(guò)實(shí)例給大家詳細(xì)介紹,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Springboot使用redis實(shí)現(xiàn)接口Api限流的示例代碼

    Springboot使用redis實(shí)現(xiàn)接口Api限流的示例代碼

    本文主要介紹了Springboot使用redis實(shí)現(xiàn)接口Api限流的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • JAVA開(kāi)發(fā)中的一些規(guī)范講解(阿里巴巴Java開(kāi)發(fā)規(guī)范手冊(cè))

    JAVA開(kāi)發(fā)中的一些規(guī)范講解(阿里巴巴Java開(kāi)發(fā)規(guī)范手冊(cè))

    這篇文章主要介紹了JAVA開(kāi)發(fā)中的一些規(guī)范講解(阿里巴巴Java開(kāi)發(fā)規(guī)范手冊(cè)),需要的朋友可以參考下
    2018-04-04
  • java中哈希表及其應(yīng)用詳解

    java中哈希表及其應(yīng)用詳解

    Java中哈希表(Hashtable)是如何實(shí)現(xiàn)的呢?Hashtable中有一個(gè)內(nèi)部類(lèi)Entry,用來(lái)保存單元數(shù)據(jù),我們用來(lái)構(gòu)建哈希表的每一個(gè)數(shù)據(jù)是Entry的一個(gè)實(shí)例。假設(shè)我們保存下面一組數(shù)據(jù),第一列作為key, 第二列作為value。
    2015-06-06

最新評(píng)論

阆中市| 铜梁县| 丰宁| 巴林左旗| 环江| 郑州市| 柳州市| 侯马市| 襄汾县| 莎车县| 承德县| 西城区| 乌拉特后旗| 临泽县| 太保市| 咸宁市| 滦平县| 长沙县| 综艺| 高邑县| 永福县| 扬州市| 巩留县| 文安县| 东乡族自治县| 忻城县| 长沙县| 延川县| 克什克腾旗| 名山县| 达尔| 灌云县| 桓台县| 武清区| 宣化县| 建昌县| 突泉县| 延吉市| 文成县| 喀什市| 陆河县|