Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to serialize and deserialize Java 8's java.time types with Gson? [closed]

I'm using GSON to serialise some object graphs to JSON. These objects graphs use the new Java 8 java.time entities (ZonedDateTime, OffsetDateTime, LocalTime etc).

I've found a library for Joda Time serialisers here - is there an equivalent library for the JDK java.time classes?

(This person had no luck with their efforts to use GSON with java.time - and their question remains unanswered).

like image 465
Greg Kopff Avatar asked Apr 15 '14 00:04

Greg Kopff


1 Answers

There's a Java 8 library here:

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

Here's the Maven details (check central for the latest version):

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

And here's a quick example of how you drive it:

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);
like image 50
Greg Kopff Avatar answered Oct 23 '22 18:10

Greg Kopff