Gson转换异常 2020-04-26

2020-04-26  本文已影响0人  青山有扶苏

今天,在开发中遇到一个问题
Gson在反序列化的时候,遇到long类型的时间就会抛出出一个错误,经过查阅资料和请教大佬后,已解决
错误重现:

1.存入redis序列化的时候,对象类型中有个一个 Date类型,被序列化成了long类型
2.在反序列化的时候,抛出错误

Invalid time zone indicator 

解决方案

    static GsonBuilder gsonBuilder;
    static {
        gsonBuilder = new GsonBuilder().registerTypeAdapter(Date.class, new JsonDeserializer<Date>() {
            @Override
            public Date deserialize(JsonElement jsonElement, Type type, JsonDeserializationContext jsonDeserializationContext) throws JsonParseException {
                return new Date(jsonElement.getAsJsonPrimitive().getAsLong());
            }
        });
    }

这里添加一个反序列化的适配器, 在处理Date类型时就把json中的value当做long来获取,然后进行转换

上一篇 下一篇

猜你喜欢

热点阅读