Java过滤JSON数据

前段时间在编写接口的过程中,后台需要给前端返回JSON数据,但是查询出来返回的数据里面有很多属性是不需要的,当时想着用字符串替换,但是发现好像根本不靠谱,

多个属性根本无卵用,后面再网上查了下,发现Java里面有提供JSON属性过滤的方法,使用了下感觉还不错,所以记录一下。

这里提供了两种过滤方法,分别用于不同的场景,可以视实际情况使用:

1.多个属性过滤

PropertyFilter profilter = new PropertyFilter(){

@Override

public boolean apply(Object object, String name, Object value) {

  if(name.equalsIgnoreCase("指定字段")){

    //false表示last字段将被排除在外

    return false;

    }

  return true;

  }

};

调用时:

String json = JSON.toJSONString(user, profilter);

上面的方法主要实用于多个属性字段过滤,该方法过滤属性灵活.当需要保留多个JSON属性数据时,可以使用上面的if后面嵌套多个else if即可过滤多个属性。

2.保留指定属性,过滤其他属性

SimplePropertyPreFilter filter = new SimplePropertyPreFilter(需要过滤属性的类.class, "需要使用的属性(可以为多个)");

调用时:

String json = JSON.toJSONString(user, filter);

该方法主要适用于指定属性字段保留,而过滤其他属性,也可保留多个属性,使用逗号隔开。