Fastjson是一種Java編寫的JSON工具,它非常方便地將Java對象轉(zhuǎn)換為JSON格式的文本。其中,將Map轉(zhuǎn)換為JSON是一個非常常見的需求。然而,在將Map轉(zhuǎn)換為JSON的過程中,日期格式可能會出現(xiàn)問題。
默認情況下,fastjson將日期轉(zhuǎn)換為ISO-8601格式,例如"2021-07-01T00:00:00.000+08:00"。這種格式看起來很規(guī)范,但是往往會導致一些問題,例如在前端展示時需要進行額外的轉(zhuǎn)換。因此,有時候我們希望將日期轉(zhuǎn)換為指定的格式,比如"yyyy-MM-dd HH:mm:ss"。
下面是一個演示將Map轉(zhuǎn)換為JSON,并將其中的日期格式化的例子:
import com.alibaba.fastjson.JSON; import java.util.HashMap; import java.util.Map; import java.text.SimpleDateFormat; import java.util.Date; public class MapToJsonExample { public static void main(String[] args) { Mapmap = new HashMap<>(); map.put("name", "Lucy"); map.put("age", 18); map.put("birthday", new Date()); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); JSON.DEFFAULT_DATE_FORMAT = formatter.format(new Date()); String jsonStr = JSON.toJSONString(map); System.out.println(jsonStr); } }
在這個例子中,我們首先創(chuàng)建了一個Map,并向其中添加了三個鍵值對,其中一個值為當前時間。然后,我們創(chuàng)建了一個SimpleDateFormat對象,并將它的格式設(shè)置為"yyyy-MM-dd HH:mm:ss",即我們想要的日期格式。接著,我們將這個格式化后的日期賦值給fastjson的默認日期格式。最后,我們將Map轉(zhuǎn)換為JSON字符串,并輸出結(jié)果。
需要注意的是,在轉(zhuǎn)換為JSON字符串之前,我們必須先給JSON.DEFFAULT_DATE_FORMAT賦值,否則默認值將會生效。
總結(jié)來說,我們可以通過改變fastjson的默認日期格式,使得Map轉(zhuǎn)換為JSON時,日期按照我們想要的格式展示。