Java - 使用 GSON 來處理 JSON 封包
目前 Mobile 行動裝置上,大部分都是透過 JSON 輕量化的封包格式來處理資料。
本篇文章就介紹使用 GSON 處理 1. 物件 Serialization 至 JSON 封包 與 2. JSON 封包 Deserializtioon 置物件的過程。
1. 首先下載 GSON 下載 Package,解壓縮並導入 gson-1.6.jar 檔案
2. 製作測試類別 Product (名稱自建),屬性儘量多一些不同的資料型態,以便測試 JSON 封包,程式碼如下:
4. Serialization 只要初始化 Gson 物件, 將我們的物件 Product 丟入, 呼叫 toJson 方法即可
5. Deserializtioon 初始化 Gson 物件, 將 Json 字串丟入, 呼叫 fromJson 方法並指定型別即可
6. 測試範例程式碼如下:
7. 執行結果如下:
8. 一般來說, Java 的 Date 及 .Net DateTime 是最麻煩處理的,
這邊範例依照 GSON User Guide 來客製化 Date 的格式化字串,並支援 Serialization 與 Deserializtioon
9. 本範例實作 TimestampTypeAdapter (名稱自定) 類別
(1) 實作 JsonSerializer<Timestamp>, JsonDeserializer<Timestamp> 兩個介面
(2) 讓 Date 可以依照 「yyyy/MM/dd HH : mm : ss」 的格式輸入及輸出
(3) 程式碼如下:
10. 其中 Gson 物件建立注意事項則:
(1) 利用 new GsonBuilder() 建立
(2) 註冊我們客製化的 TimestampTypeAdapter:registerTypeAdapter(Timestamp.class, new TimestampTypeAdapter())
(3) 設定時間格式 setDateFormat("yyyy/MM/dd HH:mm:ss")
(4) 完整建立方式:new GsonBuilder().registerTypeAdapter(Timestamp.class, new TimestampTypeAdapter()).setDateFormat("yyyy/MM/dd HH:mm:ss").create();
11 測試程式碼,如下:
12. 執行結果,如下: