1. 程式人生 > >解決JsonArray.toList轉換List時,串中的時間欄位變為當前時間的問題

解決JsonArray.toList轉換List時,串中的時間欄位變為當前時間的問題

當前問題:
最近在處理一個Bug時發現從資料庫中取出的時間,到頁面後全部變為了當前時間.跟程式走完後發現,在服務中取出庫中內容後,服務用
String result = JSON.toJSONString(list);
將list變為串傳到前端頁面,這時時間格式變成毫秒制,前端頁面在使用
JSONArray jsonList = JSONArray.fromObject(jsonObject.getString(“list”));
list = (List)JSONArray.toList(jsonList,Acceptorder.class);
將從服務傳遞而來的串重新轉換為list;可是在轉換過程中,無法完美的將毫秒重新變為日期格式,導致時間變為當前時間;
問題原因:
嘗試許久發現是jar包問題,導致時間轉換為串後無法轉變為日期格式;
解決方法:
在將list轉換為串使用
String result = JSON.toJSONStringWithDateFormat(list,“yyyy-MM-dd HH:mm:ss”);


在將串轉換回list時 使用
JSONObject jsonObject = JSONObject.fromObject(strjson);
JSONArray jsonList = JSONArray.fromObject(jsonObject.getString(“list”));
//處理日期
JSONUtils.getMorpherRegistry().registerMorpher(new DateMorpher(new String[] { “yyyy-MM-dd”, “yyyy-MM-dd HH:mm:ss” }), true);
list = (List)JSONArray.toList(jsonList,Acceptorder.class);