我用上面的答案做一個小幫手,將處理序列化和反序列化的模型包含DateTime變量的對象。
public static Gson gsonDateTime() {
Gson gson = new GsonBuilder()
.registerTypeAdapter(DateTime.class, new JsonSerializer<DateTime>() {
@Override
public JsonElement serialize(DateTime json, Type typeOfSrc, JsonSerializationContext context) {
return new JsonPrimitive(ISODateTimeFormat.dateTime().print(json));
}
})
.registerTypeAdapter(DateTime.class, new JsonDeserializer<DateTime>() {
@Override
public DateTime deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context) throws JsonParseException {
DateTime dt = ISODateTimeFormat.dateTime().parseDateTime(json.getAsString());
return dt;
}
})
.create();
return gson;
}
還有一個適用於Java 8的'java.time'類:https://github.com/gkopff/gson-javatime-serialisers – 2014-04-15 00:22:25
拯救生命!謝謝。 – 2015-04-12 03:10:04
@GregKopff感謝您與官方圖書館的作者交談。你的庫缺少'PeriodConverter'。我試圖實現一個,但失敗。 (因爲我不太瞭解,只是基於你的代碼)。我的問題在這裏:'http:// stackoverflow.com/questions/33219587/gson-jodatime-serialisers-library-implement -deterconverter-for-period-in-joda'請訪問並給我評論。謝謝:) – hqt 2015-10-20 13:43:15