FastJson 不输出空数组

在我们平时开发过程中,Java bean 转JSON的时候有一些空数组,导致转换后的多了很多 “无用” 的数据。

{

  student:{

  "name":"江南也少",

  "score": []

  }

}

这个时候我们希望这个没有参加考试,也没有分的同学,不用输出score,该怎么办呢?

我们可以定义一个Filter类

public class NotWriteEmptyList implement{

            @Override
            public boolean apply(Object o, String key, Object value) {
                if (value == null) {
                    return false;
                }
                if(value instanceof  String && ((String) value).isEmpty()){
                    return false;
                }
                if(value instanceof List && ((List) value).size() == 0){
                    return  false;
                }
                return true;
            }
       
}


在我们同String的时候new 一个Filter 传进去就OK了

JSON.toJSONString(entity, new NotWriteEmptyList());

这样就会得到如下的结果:

{

  student:{

  "name":"江南也少"

  }

}

 

 

上一篇:Java FastJson解析json字符串


下一篇:fastjson对象,JSON,字符串,map之间的互转