java - 如何覆盖Gson默认的DateTypeAdapter?

标签 java gson android

我创建了一个自定义日期反序列化器:

private static class DateJsonDeserializer implements JsonDeserializer<Date>{

    @Override
    public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
        for (String format : DATE_FORMATS) {
            try {
                SimpleDateFormat df = new SimpleDateFormat(format);
                return df.parse(json.getAsString());
            } catch (ParseException e) {
            }
        }
        throw new JsonParseException("Unparseable date: \"" + json.getAsString()
                + "\". Supported formats: " + Arrays.toString(DATE_FORMATS));
    }
}

我将其添加到我的 gsonBuilder 中:

gsonBuilder.registerTypeAdapter(Date.class, new DateJsonDeserializer());

但是如果我想解析日期,我会看到使用内置的 DateTypeAdapter 类,为什么?我想使用我的日期反序列化器。 我使用的是retrofit 2.1.0、Gson 2.8.0、converter-gson 2.1.0

最佳答案

您确定 Date.class 是正确的类吗?也许它使用 Date.class 的子类?

关于java - 如何覆盖Gson默认的DateTypeAdapter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41207787/

相关文章:

java - 将 GsonBuilder 转换为 Kotlin

android - com.fasterxml.jackson.databind.JsonMappingException : Duplicate creator property "id" (index 0 vs 1)

android - Webview 仅在第一次加载

android - 如何查看付款已通过沙盒中的卡发送

java - 连接到 WELD-SE 类路径扫描器

java - 确定地理点是否在州边界的 X 米范围内(使用边界数据的 shapefile)

java - 自 Android Nougat 以来不再能够连接到 Wi-Fi 网络

json - 读取任意json数据到javafx treeview,只显示其中任意数组的第一个元素

java - Android:带有 if else 语句的测验应用程序

android - 当 JSON 数据是动态的时,如何在 Android 中进行改造?