fastjson是一款開源的JSON解析庫,它可以將JSON字符串快速地轉(zhuǎn)換為Java對象。而在JSON數(shù)據(jù)中,經(jīng)常會包含時間戳(timestamp)信息,因此在使用fastjson進行JSON轉(zhuǎn)對象時,需要對時間戳進行處理。
下面是一個示例JSON數(shù)據(jù):
{ "id": 1, "name": "張三", "age": 22, "birthday": 1612000000000 }
其中,birthday字段是一個時間戳,表示1970年1月1日0時0分0秒到該時間的毫秒數(shù)。如果直接使用fastjson將該JSON轉(zhuǎn)為Java對象,birthday字段會被解析成Long類型。而通常我們會希望將其轉(zhuǎn)換為更為友好的日期時間格式。
為了實現(xiàn)這一目的,可以使用fastjson的特殊注解。
import com.alibaba.fastjson.annotation.JSONField; import java.util.Date; public class User { private Long id; private String name; private Integer age; @JSONField(format="yyyy-MM-dd HH:mm:ss") private Date birthday; // getter、setter省略 }
在User類中,使用了@JSONField注解來標識birthday字段,并指定了日期時間格式為"yyyy-MM-dd HH:mm:ss"。這樣在進行JSON轉(zhuǎn)對象時,fastjson會自動將時間戳轉(zhuǎn)換為對應的日期時間格式。
下面是轉(zhuǎn)換代碼:
String jsonStr = "{\"id\":1,\"name\":\"張三\",\"age\":22,\"birthday\":1612000000000}"; User user = JSON.parseObject(jsonStr, User.class); System.out.println(user.getBirthday());
輸出結(jié)果為:
2021-01-30 00:00:00
可以看到,birthday字段已經(jīng)被轉(zhuǎn)換成對應的日期時間格式,方便了后續(xù)的使用。
除了使用注解,還可以通過實現(xiàn)自定義的解析器來處理時間戳。這里不再贅述,有興趣的讀者可以自行查閱fastjson官方文檔。
上一篇limitby vue