Java實體類轉Json出現的一些問題
jsonConfig.setJsonPropertyFilter(new PropertyFilter() {
public boolean apply(Object obj, String name, Object value) {
if(value instanceof Set<?> || value instanceof TGGoodsEvaluate){ //這裡是通過類名來過濾
return true;
}else{
return false;
}
}
}); jsonConfig.setExcludes(new String[]{"addTime"}); //也可以通過變數名來過濾 net.sf.json.JSONException: java.lang.reflect.InvocationTargetException
1、JSONArray array = JSONArray.fromObject(this.users.toArray()); //如果要轉為json陣列,那麼需要將List先轉為陣列,然後再去進行json轉換 2、因為bean裡有Date欄位,且從資料庫裡讀出來的是java.sql.Date賦值給了java.util.Date,轉化成JSONArray時出錯;可以在從資料庫讀出Date 時直接寫成:new java.util.Date(rs.getDate("date").getTime),這樣就不會出錯了;
json-lib有一個配置類JsonConfig
通過JsonConfig可以註冊一個欄位處理器
實現JsonValueProcessor介面即可
JsonConfig jsonConfig = new JsonConfig(); jsonConfig.registerJsonValueProcessor(java.util.Date.class,new JsonValueProcessor() { private SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); public Object processObjectValue(String key, Object value, JsonConfig jsonConfig) { return value == null ?"" : sd.format(value); } public Object processArrayValue(Object value, JsonConfig jsonConfig) { return null; } });
所以你最後應該把JsonConfig物件傳入json操作方法
printWriter.write(JSONArray.fromObject(dutyList,jsonConfig).toString());
3、hibernate延時載入
這個問題也是被坑的最久的一個問題,主要是由於實體類還包含了另外一個實體類,並且出現了延遲載入導致的。當時錯誤棧資訊也一直沒有顯示出這個錯誤,直到經測試發現,如果把內層包含的實體類new出來,在加到外層實體類裡面,再去轉json,可以正常進行,這才想到可能是延遲載入的問題,於是網上搜了一下得到以下解決方案:
JsonConfig cfg = new JsonConfig();
cfg.setExcludes(new String[]{"handler","hibernateLazyInitializer"});
最後在轉json的時候把jsonconfig當做一個引數傳入即可。
相關推薦
Java實體類轉Json出現的一些問題
net.sf.json.JSONException: There is a cycle in the hierarchy! 這個問題說明,實體類物件包含另外一個實體類的物件,並且形成了迴圈引用。解決這個問題的方法可以通過設定jsonconfig來避免: JsonCon
學習筆記 利用反射 手寫一個簡單的實體類 轉json 的方法
不得不說 反射真的是個好動 # 貼上我的程式碼 package com.lengff.test; import java.lang.reflect.Field; import java.lang.reflect.InvocationTargetExce
.net 中 Json資料轉實體類,實體類轉Json
1.獲取一個頁面的json值,轉換為實體類 public static void GetPurchaseMatPriceLogList() { HttpWebRequest request = (HttpWebRequest)Http
json字串轉java實體類
本文參考自大神部落格:點選開啟連結 一、json強轉實體類 1.實體類 package test; public class PassPortForLendsEntity { private String passportid; private
帶有java.util.Date型別的實體類轉成json物件
有時專案中會遇到這樣的場景: 實體類需要轉換成json,然後傳給前臺或者其他專案裡,如果實體類裡包含java.util.Date型別的屬性,轉換後,會變成這樣(如果沒做任何處理) "receiveTime": { "
JSON字串轉Java實體類POJO工具
網址:http://www.bejson.com/json2javapojo/ 選擇JSON相關—>JSON生成Java實體類,在編輯框內輸入JSON內容 { “status”:1,
json字串轉java實體類及屬性對應中的貓膩詳解
一、json強轉實體類 1.實體類 package test; public class PassPortForLendsEntity { private String passportid;
java 實體類 list 怎麼轉map
這是service層的 @Override @Transactional public PageVo<List<Map<String,Object>>> searchOrders(UserVo user,
用實體類接收json資料與java關鍵字重名問題
在做切換harbor需求的時候,因為新老harbor的漏洞掃描格式不同,老harbor中有對於單個映象不同漏洞等級等的統計資訊,而新harbor中只有漏洞詳情,想來這也好辦,直接統計各個
json通過實體類轉換時出現的異常
1、空值轉換-異常情況: [html] view plain copy Can not instantiate value of type [map type; class java.util.HashMap, [simple type, class jav
使用Java註解將實體類轉化為sql字串
首先是定義一個實體類,如下 /* * 定義使用者,通過註解對映到資料庫 */ @Table("user") public class User { @Column("id") private int id; @Column("username") privat
【XML】將String格式的XML檔案轉化成JAVA實體類
1.問題: 如何將String型別的XML轉化成JAVA實體類? 2.原始碼: public class TestXML { @SuppressWarnings("unchecked") public static void main(
通過JDK的JAXBContext類來轉換java實體類bean和xml格式字串的一些問題和解決辦法
這兩天工作中用到web service來推送資料,涉及到xml的和java實體類的轉換,總結一下理解和碰到的問題。 (一)、寶寶想得到下面這樣的兩個xml型別的字串anth和args,來推送給第三方:<?xml version="1.0" encoding
java JavaBean(實體類)轉化為map (利用Java反射實現)
/** * 獲取利用反射獲取類裡面的值和名稱轉化為map * * @param obj //JavaBean * @return map * @throws IllegalAccessException
ServiceStack DateTime數據類型轉Json出現的困擾
onf 導致 metadata tac cti add info != postman 執行dotnet-new selfhost sstest 創建項目,然後打開解決方案 修改ssTest.ServiceModel中的Hello.cs,在HellopResponse
數據庫表直接生成Java實體類
dep script urn rac getclass direct time unicode auto 代碼如下: package com.nagios.info.entity; import java.io.File; import java.io.F
java 實體類 時間格式字段註解
小時 mat timezone att string 使用 如果 格式 字段 @DatetimeFormat是將String轉換成Date,一般前臺給後臺傳值時用 @JsonFormat(pattern="yyyy-MM-dd") 將Date轉換成String 一般後臺傳值
轉json出現的死循環問題--SSH
耗資源 config nco conf hiberna 問題 現在 不能 ssh 主要原因: 是在json時hibernate才會加載數據(懶加載)加載出來的數據又有其他關系數據又去加載其他的數據,而其他的數據又包含了本類數據進入死循環 這種現象一般出現在多表查詢時 解決方
Java : 實體類不能序列化異常
serial 異常 序列 join col 添加 序列化 之間 是否 當修改實體類之後調用接口出現不能序列化的異常時,一定要檢查實體之間的關系是否都是正確的. could not serialize; nested exception is org.hibernate.ty
java解析和組裝json以及一些方法的理解
content 獲取 con imei title 報錯 bsp ava 取值 這是一個json格式的字符串 第一種情況(簡單格式) String result = "{\"name\":\"小明\",\"age\":\"12\"}";JSONObject json =