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
网友评论