GSON получает ключ от JsonPrimitive в десерилизаторе - PullRequest
0 голосов
/ 11 февраля 2020

У меня есть Json объект, который я превращаю в объект с 3 членами date. Я хочу получить ключ в процессе десериализации, но похоже, что Gson рассматривает класс Date.class как JsonPrmitive. Что мешает мне получить ключ.

Есть ли другой способ получить ключ?

public class DateDeserializer implements JsonDeserializer<Date> {

    @Override
    public Date deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
        System.out.println("json.isJsonPrimitive() = " + json.isJsonPrimitive());
        System.out.println("json.isJsonNull() = " + json.isJsonNull());
        System.out.println("json.isJsonArray() = " + json.isJsonArray());
        System.out.println("json.isJsonObject() = " + json.isJsonObject());

        try {
            return Date.from(Instant.parse(json.getString()));
        } catch (Exception e) {
            throw new JsonParseException("blah date, change it: " + json.getString());
        }

    }

}

json Пример тела будет выглядеть так:

{
    "name": "potato",
    "dateCreated": "Mon Feb 10 08:55:17 EST 2019"
}
...