С кодом в исходном вопросе, используя Gson 1.7.1 или Gson 2.0, все, что я получаю, это "Исключение в потоке" main "com.google.gson.JsonParseException: дата должна быть строковым значением".Это то, что я ожидаю от написанного кода.
Я предполагаю, что вы можете зарегистрировать адаптер типа для java.util.Date
, а не для DummyObject
.(Это приводит к другой ошибке, но я думаю, что это ближе к тому, чего вы пытаетесь достичь. Конечно, я немного догадываюсь о намерении вопроса / кода.)
Или, может быть, вывы хотите изменить логику десериализации следующим образом, понимая, что вы хотите десериализовать только часть даты JSON в java.util.Date
.
gb.registerTypeAdapter(DummyObject.class, new JsonDeserializer<Date>()
{
DateFormat format = DateFormat.getInstance();
public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
throws JsonParseException
{
try
{
return format.parse(((JsonObject)json).get("createdDate").getAsString());
}
catch (ParseException e)
{
throw new JsonParseException(e);
}
}
});
. Вам все равно придется разрешить (более конкретно) ошибка разбора даты.