У меня есть API, который принимает запросы и генерирует возвращенный JSON.Этот JSON генерируется с использованием объекта ниже и моего служебного класса.
Когда JSON возвращается в приложение, я фактически использую тот же самый вспомогательный класс для сериализации JSON обратно в объект.
Однако я получаю исключение (см. Ниже).Как мне обойти это?Я перепробовал практически все, что могу найти в Интернете, мне не повезло.
Объект:
public class MyPerson() {
private String name;
private Date lastEdited;
}
Класс утилит для конвертации:
public class GsonUtils {
private static final Gson gson = new GsonBuilder()
.setDateFormat("yyyy-MM-dd'T'hh:mm:ss")
.create();
public static String deserializeObjectToJSON(Object obj) {
return gson.toJson(obj);
}
public static <T> Object serializeObjectFromJSON(String json, Class<T> classType) {
return gson.fromJson(json, classType);
}
public static <T> List<T> serializeListOfObjectsFromJSON(String json, Type listType) {
return gson.fromJson(json, listType);
}
}
Ошибка:
Caused by: java.text.ParseException: Failed to parse date ["2019-02-12T12:00:00.0"]: No time zone indicator at com.google.gson.internal.bind.util.ISO8601Utils.parse(ISO8601Utils.java:274) ~[gson-2.8.5.jar:na] at com.google.gson.internal.bind.DateTypeAdapter.deserializeToDate(DateTypeAdapter.java:85) ~[gson-2.8.5.jar:na] ... 66 common frames omitted
Редактировать:
Взял предложения и обновил служебный класс, та же ошибка:
Caused by: java.text.ParseException: Failed to parse date ["2019-02-12T12:00:00.0"]: No time zone indicator
at com.google.gson.internal.bind.util.ISO8601Utils.parse(ISO8601Utils.java:274) ~[gson-2.8.5.jar:na]
at com.google.gson.internal.bind.DateTypeAdapter.deserializeToDate(DateTypeAdapter.java:85) ~[gson-2.8.5.jar:na]
... 66 common frames omitted