+
+ private Gson buildGson() {
+ return new GsonBuilder()
+ .registerTypeAdapter(Integer.class, (JsonDeserializer<Integer>) (json, typeOfT, context) -> {
+ try {
+ return json.getAsInt();
+ } catch (NumberFormatException e) {
+ return 0;
+ }
+ })
+ .registerTypeAdapter(Date.class, (JsonDeserializer<Date>) (jsonElement, type, jsonDeserializationContext) -> {
+ try {
+ return jsonElement == null ? null : new Date(jsonElement.getAsLong());
+ } catch (NumberFormatException e) {
+ return null;
+ }
+ })
+ .registerTypeAdapter(Date.class, (JsonSerializer<Date>) (date, type, jsonSerializationContext)
+ -> date == null ? null : new JsonPrimitive(date.getTime()))
+ .create();
+ }