方法一:在对象属性上添加注解
@JSONField(serialize=false)//转换成json的时候去除subareas属性
private Set subareas = new HashSet(0);
方法二:使用参数过滤器
//方法二:通过fastjson的参数过滤器将任何一个bean对象的内容转换成json字符串并返回到前台
public void bean2Json2Front2(Object object) {
//通过匿名内部类创建参数过滤器
//name为对象中的属性名!!,返回false表示转成json的时候过滤掉该属性名
PropertyFilter filter=new PropertyFilter() {
@Override
public boolean apply(Object source, String name, Object value) {
if(name.equals("roles")||name.equals("parentFunction")) {
return false;
}
return true;
}
};
//下面四行是常规步骤
SerializeWriter sw = new SerializeWriter();
JSONSerializer serializer = new JSONSerializer(sw);
serializer.getPropertyFilters().add(filter);
serializer.write(object);
//转换成json
String json=sw.toString();
//将json数据返回到浏览器
//设置返回内容的类型为json格式,很重要!!!不设置的话可能得不到你想要的结果!!
ServletActionContext.getResponse().setContentType("application/json;charset=utf-8");
try {
//写到前台
ServletActionContext.getResponse().getWriter().write(json);
} catch (IOException e) {
e.printStackTrace();
}
}
方法三:使用简单参数过滤器保留指定的参数
//方法三:通过简单参数过滤器(保留的方法),将任何一个bean对象的内容转换成json字符串并返回到前台
public void bean2Json2Front3(Object object) {
//参数1:被转换对象的字节码对象(可以省略);参数2...后面都是可变参数,表示你想要保留!!的参数
SimplePropertyPreFilter filter=new SimplePropertyPreFilter(Object.class,"id","text","children");
//转成json
String json = JSON.toJSONString(object, filter);
//将json数据返回到浏览器
ServletActionContext.getResponse().setContentType("application/json;charset=utf-8");
try {
ServletActionContext.getResponse().getWriter().write(json);
} catch (IOException e) {
e.printStackTrace();
}
}