Java - 使用 GSON 來處理 JSON 封包

  • 32808
  • 0

Java - 使用 GSON 來處理 JSON 封包

目前 Mobile 行動裝置上,大部分都是透過 JSON 輕量化的封包格式來處理資料。

本篇文章就介紹使用 GSON 處理 1. 物件 Serialization 至 JSON 封包 與 2. JSON 封包 Deserializtioon 置物件的過程。

 

1. 首先下載 GSON 下載 Package,解壓縮並導入 gson-1.6.jar 檔案

 

2. 製作測試類別 Product  (名稱自建),屬性儘量多一些不同的資料型態,以便測試 JSON 封包,程式碼如下:

2011-01-04_16-09-26

 

4. Serialization  只要初始化 Gson 物件, 將我們的物件 Product 丟入, 呼叫 toJson 方法即可

5. Deserializtioon 初始化 Gson 物件, 將 Json 字串丟入, 呼叫 fromJson 方法並指定型別即可

6. 測試範例程式碼如下:

2011-01-04_16-21-49

 

7. 執行結果如下:

2011-01-04_16-22-33

 

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) 程式碼如下:

2011-01-04_16-30-59

 

10. 其中 Gson 物件建立注意事項則:

(1) 利用 new GsonBuilder() 建立

(2) 註冊我們客製化的 TimestampTypeAdapterregisterTypeAdapter(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 測試程式碼,如下:

2011-01-04_16-39-55

 

12. 執行結果,如下:

2011-01-04_16-45-26