2024年9月25日 星期三

gson.JsonSyntaxException Failed parsing SQL Date

發現WAS LOG有Gson解析JSON處理DATE有異常,爬了下文多篇文章表示程式碼未異動情況下,在不同的伺服器運行的結果會不一樣,開發環境使用TOMCAT所以測不到異常? 但WEBSPHERE報錯ㄌ...

不過LOG中顯然"九月"被Decode成"????"是屬於編碼問題,所以除了格式外Charset也要處理。

LOG: has Exception:com.google.gson.JsonSyntaxException: Failed parsing '???? 22, 2024' as SQL Date

解法備忘:

在寫入BLOB時,先指定DATE FORMAT跟Charset

Gson gson = new GsonBuilder().setDateFormat("MMM dd, yyyy").create();
byte[] bdata = gson.toJson(Class()).getBytes("utf-8");

還原時,也要設定DATE FORMAT跟Charset

Gson gson = new GsonBuilder().setDateFormat("MMM dd, yyyy").create();
gson.fromJson(new String(bdata, Charset.forName("utf-8")), XXX.class);


沒有留言: