fastjson過濾不需要的屬性


以下是一個通用的對象轉json的方法,使用的fastjson的SimplePropertyPreFilter 對象,個人感覺比使用PropertyPreFilter的匿名內部類形式的過濾器更好用!

直接上代碼:

/**
* 將對象序列化為json,並回寫到客戶端瀏覽器
*/
public void objectToJson(Object obj, String[] args) {
//屬性過濾器對象
SimplePropertyPreFilter filter = new SimplePropertyPreFilter();

//屬性排斥集合,強調某些屬性不需要或者一定不能被序列化
Set<String> excludes = filter.getExcludes();

//屬性包含集合,強調僅需要序列化某些屬性.具體用哪一個,看實際情況.此處我用的前者
//Set<String> includes = filter.getIncludes();

//排除不需序列化的屬性
for (String string : args) {
excludes.add(string);
}

//調用fastJson的方法,對象轉json,
//參數一:需要被序列化的對象
//參數二:用於過濾屬性的過濾器
//參數三:關閉循環引用,若不加這個,頁面無法展示重復的屬性值
String string = JSON.toJSONString(obj, filter,SerializerFeature.DisableCircularReferenceDetect);

//頁面回寫
HttpServletResponse response = ServletActionContext.getResponse();
response.setContentType("text/json;charset=utf-8");
try {
response.getWriter().print(string);
} catch (IOException e) {
e.printStackTrace();
}
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM