2015-06-22 51 views
2

我開發了一個使用com.google.gson.Gson(gson-2.2.4.jar)的Java程序。該方法的情況下,日期格式ISO 8601拋出異常(例如: 「2015-06-22T09:26:27 + 0000」)擴展Google庫方法的最佳方法

com.google.gson.JsonSyntaxException: 2015-06-22T09:26:27+0000 
    at com.google.gson.DefaultDateTypeAdapter.deserializeToDate(DefaultDateTypeAdapter.java:107) ~[gson-2.2.4.jar:na] 
    at com.google.gson.DefaultDateTypeAdapter.deserialize(DefaultDateTypeAdapter.java:82) ~[gson-2.2.4.jar:na] 
    at com.google.gson.DefaultDateTypeAdapter.deserialize(DefaultDateTypeAdapter.java:35) ~[gson-2.2.4.jar:na] 
    at com.google.gson.TreeTypeAdapter.read(TreeTypeAdapter.java:58) ~[gson-2.2.4.jar:na] 
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$1.read(ReflectiveTypeAdapterFactory.java:93) ~[gson-2.2.4.jar:na] 
    at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:172) ~[gson-2.2.4.jar:na] 
    at com.google.gson.Gson.fromJson(Gson.java:803) ~[gson-2.2.4.jar:na] 
    at com.google.gson.Gson.fromJson(Gson.java:768) ~[gson-2.2.4.jar:na] 
    at com.google.gson.Gson.fromJson(Gson.java:717) ~[gson-2.2.4.jar:na] 
    at com.google.gson.Gson.fromJson(Gson.java:689) ~[gson-2.2.4.jar:na] 

爲了解決這個問題,我有2種途徑

  1. Gson gson = new GsonBuilder().setDateFormat("yyyy-MM-dd'T'HH:mm:ssX").create(); ==>適用於所有GSON對象==>變化〜50個職位

  2. 提取谷歌的圖書館作爲我的程序的工具,改變DefaultDateTypeAdapter.deserializeToDate()函數來處理這個錯誤。之後,我會改變從谷歌庫導入到我的實用程序庫==>更改〜20個文件

什麼是最好的方法?

回答