亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

fastjson序列化時間自定義格式的方法是什么

發布時間:2023-04-27 16:09:45 來源:億速云 閱讀:156 作者:iii 欄目:開發技術

今天小編給大家分享一下fastjson序列化時間自定義格式的方法是什么的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

首先建一個項目添加依賴

    <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 序列化方法,發現可以傳個配置對象,看看這個能不能解決問題

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

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

/**
 * @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類型進行格式轉化
        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("拯救地球任務").setStartTime(now).setEndTime(now.plusDays(10));
        return JSON.toJSONString(task, serializeConfig);
    }
}

瀏覽器調用接口,看下結果

fastjson序列化時間自定義格式的方法是什么

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

以上就是“fastjson序列化時間自定義格式的方法是什么”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巴南区| 元谋县| 乌苏市| 繁峙县| 随州市| 紫金县| 福海县| 石渠县| 深圳市| 长兴县| 彰化市| 阿勒泰市| 汽车| 陆丰市| 女性| 万安县| 莎车县| 松阳县| 从江县| 娱乐| 牡丹江市| 昌宁县| 娄烦县| 新密市| 郑州市| 临澧县| 漯河市| 东莞市| 襄樊市| 永川市| 鱼台县| 美姑县| 常德市| 伊金霍洛旗| 西宁市| 江川县| 桃江县| 宝坻区| 东方市| 赤峰市| 湟中县|