我创建了一个自定义日期反序列化器:
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/