Jackson Gson Date long

2017-05-08  本文已影响266人  Thresh0ld

Jackson默认序列化Date和TimeStamp对象时会将其转换成long类型,也就是UTC时间戳(从1970年1月1日零点开始所经过的毫秒数)。这个对跨时区来说是有好处的,但是对程序猿来说不是很友好,一眼看到这个Json不经过计算的话根本不知道是哪天哪个时间。
不管怎样,先回到本文主题吧,怎么用Gson处理Date成long类型或将long类型转换成Date

废话不多说,上代码。

 JsonDeserializer<Date> dateJsonDeserializer = (json,typOfT,context) -> new Date(json.getAsJsonPrimitive().getAsLong());
 JsonSerializer<Date> dateJsonSerializer = (src, typeOfSrc, context) -> new JsonPrimitive(src.getTime());

 Gson gson = new GsonBuilder()
                .registerTypeAdapter(Date.class,  dateJsonSerializer)
                .registerTypeAdapter(Date.class, dateJsonDeserializer)
                .create();

嗯,就是这么简单。


关注我的公众号.jpg
上一篇 下一篇

猜你喜欢

热点阅读