1
は、私は、カスタム日付デシリアライザを作成:GsonのデフォルトのDateTypeAdapterを上書きする方法は?
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を使用しています。
私はどこでもjava.util.Dateクラスを使用しています。私はretrofitのconverterFactoriesをチェックして、最初のものはBuiltInConvertersであり、最初に呼び出され、例外がスローされたDateTypeAdapterが含まれていることがわかります。 – just