list轉換為JsonArray時,使用JsonValueProcessor處理有關資料型別
使用JSONArray jsonarray = JSONArray.fromObject(list);可以輕鬆將list轉換為array,但是當list中含有data型別的資料的時候,就會轉換不正確,例如將createTime在資料庫中為dateTime型別,被轉換成了"createTime":"date":26,"day":2,"hours":0,"minutes":0,"month":10,"nanos":0,"seconds":0,"time":1385395200000,"timezoneOffset":-480,"year":113},不是需要的“yyyy-MM-dd HH:mm:ss”格式.
使用JsonValueProcesscor進行配置。JsonValueProcessor是interface,實現該介面,定義List轉換為Json格式時,如何轉換Date型別的資料。
package util;
importjava.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;
import net.sf.json.JsonConfig;
import net.sf.json.processors.JsonValueProcessor;
public classJsonDateValueProcessor implements JsonValueProcessor {
privateString pattern = "yyyy-MM-dd HH:mm:ss";
//定義兩個建構函式,通過第二個建構函式可以自定義時間格式化字串
publicJsonDateValueProcessor() {
super();
}
publicJsonDateValueProcessor(String format) {
this.pattern= format;
}
publicObject processArrayValue(Object arg0, JsonConfig arg1) {
//TODO Auto-generated method stub
returnprocess(arg0);
}
publicObject processObjectValue(String arg0, Object arg1, JsonConfig arg2) {
//TODO Auto-generated method stub
returnprocess(arg1);
}
privateObject process(Object val){
if(valinstanceof Date&& val!=null){
SimpleDateFormatsdf=new SimpleDateFormat(this.pattern,Locale.CHINESE);
returnsdf.format(val);
}else
returnval==null?"":val.toString();
}
}
在使用JSONArray.fromObject()
JsonConfig config = newJsonConfig();
config.registerJsonValueProcessor(Date.class,new JsonDateValueProcessor());
JSONArray.fromObject(readlist,config);
在使用JSONArray.fromObject(list),如果list是hibernate返回的實體結果,實體有級聯關係,則極有可能丟擲net.sf.json.JSONException: There is a cycle in the hierarchy異常。,所以需要使用JSONValueProcessor處理有關巢狀的欄位。例如專案中的Paper這個類,
entity如下:
hbm.xml檔案如下:
可以看出pps pqs npps quotepapers這4個欄位都是關聯了其他表的,這樣會
JSONArray會無線迴圈封裝。丟擲異常。解決方法如下:
如何在myeclipse中執行main函式時,為main函式加入執行引數?
相關推薦
list轉換為JsonArray時,使用JsonValueProcessor處理有關資料型別
使用JSONArray jsonarray = JSONArray.fromObject(list);可以輕鬆將list轉換為array,但是當list中含有data型別的資料的時候,就會轉換不正確,
Mybatis:使用bean傳值,當傳入值為Null時,提示“無效的列型別”的解決辦法
提示: Try setting a different JdbcType forthis parameter or a differentjdbcTypeForNull configuration property. Cause: java.sql.SQLException: 無效的列型別: 1111
處理將list 轉換為json,js時間顯示毫秒數問題
1.後臺將一個list轉換為json HttpServletResponse response = getResponse(); response.setContentType("text/json;charset=utf-8"); Prin
將秒數轉換為日時分秒,
/** * 獲取剩餘時間 * * @return */ public static String getRemainingTime(String createTime, int expriedDays) throws ParseException { SimpleDateFormat f
JAVA物件轉換為JSON時日期格式轉換處理
PS→無奈:受思深處宜先退,得意濃時便可休。 今天在返回json物件到前端時發現前端接收到的資料裡面的時間格式被拆開了,原因如下: 預設JSON對DATE型別會轉換成一個多屬性物件, 而不是單獨的一個字串, 在某些應用處理上不是很方便, 可以利用Js
報表本年對應的上一年資料為空時,將空轉換為0
update session.results set tq_qty= case when tq_qty=0 or tq_qty is null then 0 else tq_qty end,  
Java過載函式,當引數為null時,呼叫的處理
精確性原則 關於以下程式的輸出結果: public class TestNull { public void show(String a){ System.out.println("String"); } public void show(Object o)
C語言之定義一個函式,實現對字串做如下操作:當字元為字母時,大小寫互換,當字元為數字時,原樣輸出,當有其它字元出現時,結束操作,返回已處理的字串
Action(){ char str[]={"tEst234%^road"};int len = sizeof(str)/sizeof(char);//strTest2呼叫函式lr_output_message("%s",strTest2(str,len)); r
.net 關於JSON轉換為物件時出現的:資料協定型別 “***”無法反序列化,因為未找到必需的資料成員 **(欄位名)
[System.Runtime.Serialization.DataMember(Name = "appPicPath")] 關於使用 DataContractJsonSerializer 把json字串序列化成 .net類物件 出現數據協定型別 “***”無法反序列化,因
格式化秒,秒轉換為: 時 分 秒的格式
var seconds=845; var minutes=0; var hours=0; if(seconds>60){ minutes=parseInt(seconds/60); seco
將java.util.Date型別轉換成json時,使用JsonValueProcessor將date轉換成希望的型別
問題描述: java裡面時間型別轉換成json資料就成這樣了: "createTime":{"date":30,"day":3,"hours":15,"minutes":14,"mont
對象轉換為json格式,類似中間層API
-- 簡單 xmlns 支持 ota org div bsp jackson 《一頭紮進SpringMvc視頻教程\《一頭紮進SpringMvc》第四講 源碼\》 對象自動轉換為json格式要在 spring-mvc.xml添加一個東西 ,和對應的命名空間引用和規範,和對
C#中圖片轉換為Base64編碼,Base64編碼轉換為圖片
byte[] agen oms ase gef urn for app raw #region 圖片轉為base64編碼的字符串 public string ImgToBase64String(string Imagefilename) {
【Unity3D】導出SpriteMode為Multiple時,裏面的每一張精靈圖片。
eight name 技術 directory 像素點 點擊 ref 菜單 分享 有時候,我們會需要把圖集中的每一個精靈導出來。 導出代碼: [MenuItem("Tools/ExportSprite")] public static void Export
當對象或對象屬性為空時,如何安全給對象或對象屬性添加默認值
方案 string sign isp ignorecas 兩種 對象 習慣 比較 今天遇到的問題,也是寫代碼的習慣問題,邏輯沒有問題,但不規範,也不安全, 容易出現漏洞。 先將代碼貼出: String isPrintLogo = vodInfoDto.getIsPrint
當input中的type值為file時,各瀏覽器的表現形式不同
button tex ati color 不同 ack 需要 標簽 圖片 如果想使各瀏覽器下的表現形式相同,需要對該input元素隱藏,然後再改元素下方添加標簽。其html寫法如下 <div class="input-file"> <input type
IIS部署ASP.NET網站後提示只有在配置文件或 Page 指令中將 enableSessionState 設置為 true 時,才能使用會話狀態...
text 效果 handlers 用戶空間 ren 分享 tpc out 調試 今天,在IIS上部署網站後,出現了下面錯誤: 只有在配置文件或 Page 指令中將 enableSessionState 設置為 true 時,才能使用會話狀態。還請確保在應用程序配置的 <
一個類,有新增元素(add)和獲取元素數量(size)方法。 啟動兩個線程。線程1向容器中新增數據。線程2監聽容器元素數量,當容器元素數量為5時,線程2輸出信息並終止
override tac trace add syn countdown print import 數據 方式一: /** * 兩個線程要是可見的所以要加上votalile */public class Test_01 { public static void
將原生android專案轉換為kotlin時遇到的問題
程式碼重構過程遇到的問題 對於Fragment,只有在onCreateView方法執行完畢後才能直接通過id引用佈局檔案中的控制元件 同時使用DataBinding框架和Kotlin導致的錯誤【解決方案連結】 Error:(x, x) Unresolved refe
input型別為number時,去掉上下箭頭
<input type="number"> <style> input::-webkit-outer-spin-button, input::-webkit-inner-spin-button { -webkit-appearance: n