public static GsonBuilder getGsonBuilder() {
GsonBuilder builder = new GsonBuilder();
builder.registerTypeAdapter(OffsetDateTime.class,
(JsonDeserializer<OffsetDateTime>) (json, typeOfT, context) -> OffsetDateTime.parse(json.getAsString()));
builder.registerTypeAdapter(OffsetDateTime.class,
(JsonSerializer<OffsetDateTime>) (src, typeOfSrc, context) -> new JsonPrimitive(src.toString()));
builder.registerTypeAdapter(LocalDate.class,
(JsonDeserializer<LocalDate>) (json, typeOfT, context) -> LocalDate.parse(json.getAsString()));
builder.registerTypeAdapter(ListPrivacy.class,
(JsonDeserializer<ListPrivacy>) (json, typeOfT, context) -> ListPrivacy.fromValue(json.getAsString()));
builder.registerTypeAdapter(Rating.class,
(JsonDeserializer<Rating>) (json, typeOfT, context) -> Rating.fromValue(json.getAsInt()));
builder.registerTypeAdapter(Rating.class,
(JsonSerializer<Rating>) (src, typeOfSrc, context) -> new JsonPrimitive(src.value));
builder.registerTypeAdapter(SortBy.class,
(JsonDeserializer<SortBy>) (json, typeOfT, context) -> SortBy.fromValue(json.getAsString()));
builder.registerTypeAdapter(SortHow.class,
(JsonDeserializer<SortHow>) (json, typeOfT, context) -> SortHow.fromValue(json.getAsString()));
builder.registerTypeAdapter(Status.class,
(JsonDeserializer<Status>) (json, typeOfT, context) -> Status.fromValue(json.getAsString()));
return builder;
}