Как сериализовать и десериализовать Java 8 java.time с Gson?

Я использую GSON для сериализации некоторых графиков объектов для JSON. Графы этих объектов используют новые объекты Java 8 java.time (ZonedDateTime, OffsetDateTime, LocalTime и т.д.).

Я нашел библиотеку для сериализаторов Joda Time здесь - есть ли эквивалентная библиотека для классов JDK java.time?

(Этот человек не повезло с их попытками использовать GSON с java.time - и их вопрос остается без ответа).

Ответы

Ответ 1

Здесь есть библиотека Java 8:

https://github.com/gkopff/gson-javatime-serialisers

Здесь детали Maven (проверьте центральную для последней версии):

<dependency>
  <groupId>com.fatboyindustrial.gson-javatime-serialisers</groupId>
  <artifactId>gson-javatime-serialisers</artifactId>
  <version>1.1.1</version>
</dependency>

И вот быстрый пример того, как вы его управляете:

Gson gson = Converters.registerOffsetDateTime(new GsonBuilder()).create();
SomeContainerObject original = new SomeContainerObject(OffsetDateTime.now());

String json = gson.toJson(original);
SomeContainerObject reconstituted = gson.fromJson(json, SomeContainerObject.class);